функция обратного вызова PFLT_COMPLETED_ASYNC_IO_CALLBACK (fltkernel.h)

Драйвер минифильтра, инициирующий асинхронную операцию ввода-вывода, может указать подпрограмму типа PFLT_COMPLETED_ASYNC_IO_CALLBACK подпрограмму, вызываемую после завершения операции.

Синтаксис

PFLT_COMPLETED_ASYNC_IO_CALLBACK PfltCompletedAsyncIoCallback;

void PfltCompletedAsyncIoCallback(
  [in] PFLT_CALLBACK_DATA CallbackData,
  [in] PFLT_CONTEXT Context
)
{...}

Параметры

[in] CallbackData

Указатель на структуру данных обратного вызова для операции ввода-вывода.

[in] Context

Указатель контекста, переданный драйвером минифильтра в качестве параметра в FltPerformAsynchronousIo, FltReadFile или FltWriteFile.

Возвращаемое значение

None

Remarks

Когда драйвер минифильтра вызывает FltPerformAsynchronousIo, FltReadFile или FltWriteFile для запуска асинхронной операции ввода-вывода, драйвер минифильтра может при необходимости указать подпрограмму обратного вызова, вызываемую после завершения операции ввода-вывода. Для этого необходимо указать подпрограмму типа PFLT_COMPLETED_ASYNC_IO_CALLBACK для параметра CallbackRoutine .

После завершения операции ввода-вывода эта подпрограмма обратного вызова вызывается в произвольном контексте потока в irQL <= DISPATCH_LEVEL.

Так как подпрограмма PFLT_COMPLETED_ASYNC_IO_CALLBACK может вызываться на DISPATCH_LEVEL IRQL, на нее распространяются следующие ограничения:

  • Он не может безопасно вызывать какие-либо подпрограммы в режиме ядра, для которых требуется более низкий IRQL.
  • Все структуры данных, используемые в этой подпрограмме, должны быть выделены из непагрегированного пула.
  • Его нельзя сделать страничной.
  • Он не может получать ресурсы, мьютексы или быстрые мьютексы. Однако он может получить спиновые блокировки.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть fltkernel.h (включая Fltkernel.h)
IRQL См. раздел "Примечания".

См. также раздел

FLT_CALLBACK_DATA

FltPerformAsynchronousIo

FltReadFile

FltWriteFile