Что означает код HRESULT 0x801F0006 (ERROR_FLT_NOT_SAFE_TO_POST_OPERATION)?

 
Предыдущий Следующий
ERROR_FLT_INVALID_NAME_REQUEST ERROR_FLT_NOT_INITIALIZED

ERROR_FLT_NOT_SAFE_TO_POST_OPERATION

Что означает ERROR_FLT_NOT_SAFE_TO_POST_OPERATION

ERROR_FLT_NOT_SAFE_TO_POST_OPERATION (0x801F0006) — Операцию небезопасно передавать рабочему потоку для дальнейшей обработки, поскольку это может привести к взаимной блокировке системы.

Результат 0x801F0006 пришёл из подсистемы «Filter Manager» при работе с областью «регистрацию minifilter, instances, contexts и I/O callbacks». Для сообщения «операцию небезопасно передавать рабочему потоку для дальнейшей обработки, поскольку это может привести к взаимной блокировке системы» практический предмет проверки — «flt, не, safe, post, операция».

Что проверить и как подтвердить исправление

Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0x801F0006 и условии «операцию небезопасно передавать рабочему потоку для дальнейшей обработки, поскольку это может привести к взаимной блокировке системы» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Чтобы локализовать 0x801F0006, соберите имя фильтра и altitude, volume/instance, тип context, major function, callback phase и журнал FilterManager; отдельно запишите IRQL, IRP. Затем для 0x801F0006 сравните исправный и неуспешный запуск в части «flt, не, safe, post, операция», меняя одно условие за раз.

Для 0x801F0006 применяйте исправление на границе первого отказа: соблюдайте порядок регистрации и удаления, тип и владельца контекста, IRQL и допустимость операции в pre/post callback. Сообщение «операцию небезопасно передавать рабочему потоку для дальнейшей обработки, поскольку это может привести к взаимной блокировке системы» при 0x801F0006 не следует подавлять общей обработкой исключения.

Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x801F0006 это надёжнее единичного успеха на других данных.

Документация для результата 0x801F0006: FltDoCompletionProcessingWhenSafe · post-operation callback constraints · Microsoft Open Specifications: STATUS_FLT_NOT_SAFE_TO_POST_OPERATION.


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