| Предыдущий | Следующий |
| ERROR_SHARING_VIOLATION | ERROR_WRONG_DISK |
ERROR_LOCK_VIOLATION
Заблокированный диапазон препятствует доступу
ERROR_LOCK_VIOLATION означает, что другому процессу или дескриптору принадлежит блокировка диапазона байтов, конфликтующая с попыткой чтения, записи или установки блокировки. Это отличается от нарушения совместного доступа: файл может быть успешно открыт, но защищена только его часть.
Что проверить
- Зафиксируйте запрошенные смещение и длину, включая старшие и младшие 32-разрядные части 64-разрядных значений.
- Проверьте все пути кода, вызывающие
LockFile,LockFileExили соответствующие API снятия блокировки. - Убедитесь, что блокировки снимаются при отмене, исключениях и закрытии дескриптора.
- Согласуйте порядок захвата блокировок, если одновременно блокируется несколько диапазонов или файлов.
Стратегия повторных попыток
Короткие ограниченные повторные попытки или ожидание перекрывающейся операции могут быть уместны, если владение блокировкой временное. Избегайте активных циклов ожидания. Если конфликт неожиданен, ищите утечки дескрипторов, несогласованные диапазоны и приложения, удерживающие рекомендательные блокировки дольше необходимого.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.