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

 
Предыдущий Следующий
ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE ERROR_CANNOT_BREAK_OPLOCK

ERROR_CANNOT_GRANT_REQUESTED_OPLOCK

Запрошенный уровень кэширования недоступен, но возможен более слабый oplock

Современные oplock Windows отдельно выражают намерения кэшировать чтение, запись и дескриптор. Запрос может быть слишком сильным для текущего состояния open/share, хотя менее разрешающая комбинация остаётся совместимой. Поэтому предупреждение информативнее общего отказа: точный уровень не предоставлен, но выходной буфер может описывать допустимый уровень.

Читайте REQUEST_OPLOCK_OUTPUT_BUFFER, а не считайте все ненулевые результаты одинаковыми. Диспетчер кэша может принять более слабый уровень, отправить новый запрос, отражающий реальные потребности, или продолжить без кэширования. Не оставляйте write-behind или кэширование дескриптора включёнными только потому, что часть запроса удовлетворена. Также учитывайте различия каталогов и файлов: oplock каталогов поддерживают более узкий набор уровней.

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

  • Проверьте NewOplockLevel и возвращённые флаги.
  • Сопоставьте каждый предоставленный бит с фактически разрешённым поведением кэша.
  • Корректно откатывайтесь, если кэширование записи или дескриптора недоступно.

Ссылки


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