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