Что означает код NTSTATUS 0xC00000E3 (STATUS_INVALID_OPLOCK_PROTOCOL)?

 
Предыдущий Следующий
STATUS_OPLOCK_NOT_GRANTED STATUS_INTERNAL_DB_CORRUPTION

STATUS_INVALID_OPLOCK_PROTOCOL

Конечный автомат oplock получил недопустимое подтверждение

Разрывы oplock имеют определённый протокол запроса и подтверждения. Клиент должен подтвердить разрыв с состоянием и флагами, возвращёнными файловой системой. Повторное использование старого буфера, двойное подтверждение или ответ с несовместимым запрошенным уровнем нарушают протокол.

Этот статус указывает на обработку конечного автомата, а не на обычную конкуренцию за файл. Сохраните уровни oplock до и после и порядок завершений вокруг разрыва.

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

  • Сопоставляйте каждое уведомление о разрыве ровно с одним ожидающим запросом oplock.
  • Записывайте OriginalOplockLevel, NewOplockLevel, Flags и время жизни дескриптора.
  • Проверьте гонки между отменой, закрытием дескриптора и асинхронным подтверждением.

Ссылки


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