Поделиться через


Выполнение обработки завершения операции ввода-вывода

Подпрограмма обратного вызова драйвера минифильтра после операции вызывается, когда операция ввода-вывода была завершена базовой файловой системой, устаревшим фильтром или другим драйвером минифильтра, который находится на меньшей высоте в стеке экземпляров драйвера минифильтра.

Кроме того, при удалении экземпляра драйвера минифильтра диспетчер фильтров "сливает" все операции ввода-вывода, для которых экземпляр получил обратный вызов перед операцией , и ожидает обратного вызова после операции. В этом случае диспетчер фильтров вызывает подпрограмму обратного вызова драйвера минифильтра после операции, даже если операция ввода-вывода не была завершена, и устанавливает флаг FLTFL_POST_OPERATION_DRAINING во входном параметре Flags .

Если установлен флаг FLTFL_POST_OPERATION_DRAINING, драйвер минифильтра не должен выполнять нормальную обработку завершения. Вместо этого он должен выполнять только необходимую очистку, например освобождать память, выделенную драйвером минифильтра для параметра CompletionContext в процедуре обратного вызова перед операцией, и возвращать FLT_POSTOP_FINISHED_PROCESSING.

Этот раздел включает в себя следующую тему:

Обеспечение выполнения обработки завершения в безопасном irQL