Что означает код NTSTATUS 0xC00001A1 (STATUS_INVALID_LOCK_RANGE)?

 
Предыдущий Следующий
STATUS_SECURITY_STREAM_IS_INCONSISTENT STATUS_INVALID_ACE_CONDITION

STATUS_INVALID_LOCK_RANGE

Запрошенный интервал блокировки недопустим

Блокировка диапазона байтов — не просто флаг всего файла: её начало и длина образуют 64-разрядный интервал. Переполнение арифметики, нулевая или неподдерживаемая длина, неверный порядок и ограничения диапазона конкретного протокола могут сделать интервал неприменимым.

Для переданного диапазона ошибка детерминирована. Повторение без исправления интервала не поможет, а молчаливое обрезание запроса может ослабить гарантии параллельного доступа приложения.

Что проверить

  • Вычисляйте конечную позицию с проверяемой 64-разрядной арифметикой.
  • Сохраните точное смещение, длину, режим совместной или исключительной блокировки и флаг немедленного отказа.
  • Для файлов SMB сопоставьте клиентский диапазон с представлением блокировки на сервере и размером файла.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.