Что означает код ошибки Windows 33 (ERROR_LOCK_VIOLATION)?

 
Также может означать:
КонстантаТипОС
KERN_INVALID_LEDGERКод возврата ядра macOSmacOS
ippStsDstSizeLessExpectedСтатус Intel IPPЛюбая
EDOMerrnoЛюбая
QUOTA_UNDERFLOWКод BSODWindows
Предыдущий Следующий
ERROR_SHARING_VIOLATION ERROR_WRONG_DISK

ERROR_LOCK_VIOLATION

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

ERROR_LOCK_VIOLATION означает, что другому процессу или дескриптору принадлежит блокировка диапазона байтов, конфликтующая с попыткой чтения, записи или установки блокировки. Это отличается от нарушения совместного доступа: файл может быть успешно открыт, но защищена только его часть.

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

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

Стратегия повторных попыток

Короткие ограниченные повторные попытки или ожидание перекрывающейся операции могут быть уместны, если владение блокировкой временное. Избегайте активных циклов ожидания. Если конфликт неожиданен, ищите утечки дескрипторов, несогласованные диапазоны и приложения, удерживающие рекомендательные блокировки дольше необходимого.

Ссылки


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