функция обратного вызова 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 | См. раздел "Примечания". |