Что означает код NTSTATUS 0xC000007E (STATUS_RANGE_NOT_LOCKED)?

 
Предыдущий Следующий
STATUS_BAD_INHERITANCE_ACL STATUS_DISK_FULL

STATUS_RANGE_NOT_LOCKED

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

Блокировки диапазонов байтов Windows определяются начальным смещением, длиной, дескриптором и режимом блокировки. Для разблокировки нужен диапазон, совместимый с блокировкой, ранее полученной через тот же дескриптор. Блокировка, принадлежащая другому дескриптору в том же процессе, не является автоматически взаимозаменяемой.

Этот результат обычно выявляет рассогласование учёта в асинхронных путях или обработке ошибок. Не следует «исправлять» его игнорированием всех ошибок разблокировки, поскольку непреднамеренная блокировка может остаться удерживаемой в другом месте.

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

  • Записывайте 64-разрядные смещение и длину, используемые и в LockFileEx, и в UnlockFileEx.
  • Учитывайте блокировки отдельно для каждого дескриптора файла, а не только для пути или процесса.
  • Проверьте пути отмены и частичных сбоев на дублирующиеся или несовпадающие вызовы разблокировки.

Ссылки


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