| Предыдущий | Следующий |
| ERROR_CANNOT_BREAK_OPLOCK | ERROR_NO_ACE_CONDITION |
ERROR_OPLOCK_HANDLE_CLOSED
Закрытие владеющего дескриптора завершило оппортунистическую блокировку
Оппортунистическая блокировка связана с конкретным дескриптором файла. При закрытии дескриптора Windows завершает ожидающий запрос oplock с этим статусом и удаляет соглашение кэширования. В отличие от обычного разрыва из-за конкурирующей операции, завершение при закрытии не требует подтверждения разрыва приложением.
Главный вопрос диагностики — было ли закрытие намеренным. Штатное завершение и вытеснение кэша могут безвредно создавать этот статус. Неожиданные случаи указывают на преждевременную очистку, отмену, повторное использование дескриптора или гонку между завершением ввода-вывода и деструктором объекта. Сразу после получения завершения перестаньте считать закешированные данные защищёнными и убедитесь, что последующий код не отправляет подтверждение разрыва на закрытом дескрипторе.
Что проверить
- Сопоставьте завершение с событиями CloseHandle и отмены.
- Аннулируйте права кэша, связанные с закрытым дескриптором.
- Не отправляйте подтверждение разрыва для завершения, вызванного закрытием.
Ссылки
- Microsoft: операции оппортунистических блокировок
- Microsoft: типы oplock и поведение при разрыве
- Microsoft: FSCTL_REQUEST_OPLOCK
Нужно найти другой код? Найти другой код состояния или ошибки.
