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


функция обратного вызова 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.

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

Никакой

Замечания

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

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

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

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

Требования

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

См. также

FLT_CALLBACK_DATA

FltPerformAsynchronousIo

FltReadFile

FltWriteFile