Что означает код NTSTATUS 0xC01C0003 (STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST)?

 
Предыдущий Следующий
STATUS_FLT_CONTEXT_ALREADY_DEFINED STATUS_FLT_DISALLOW_FAST_IO

STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST

STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST является ошибкой модели запроса. В частности, FltPerformAsynchronousIo не может асинхронно выполнить запрос IRP_MJ_CREATE ; диспетчер фильтров разрешает этот API только для поддерживаемых операций на основе IRP, но не для операций быстрого ввода-вывода или обратных вызовов FSFilter.

Не переводите каждую операцию на асинхронный API лишь потому, что драйверу требуется отложенная обработка. Отделяйте решение об открытии или создании от последующих операций чтения и записи и предпочитайте специализированные FltReadFile или FltWriteFile процедуры, когда эти API соответствуют требуемой операции.

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

  • Основная функция в выделенных данных обратного вызова.
  • Исходный экземпляр и требуемые правила владения завершением для данных обратного вызова.
  • Определите, что требуется в действительности: асинхронный файловый ввод-вывод, отложенная постобработка или решение политики перед созданием объекта.

FltPerformAsynchronousIo | Обратные вызовы до и после операции | Справочник NTSTATUS


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