FltAllocateCallbackData 函数 (fltkernel.h)
FltAllocateCallbackData 分配微型筛选器驱动程序可用于启动 I/O 请求的回调数据结构。
语法
NTSTATUS FLTAPI FltAllocateCallbackData(
[in] PFLT_INSTANCE Instance,
[in, optional] PFILE_OBJECT FileObject,
[out] PFLT_CALLBACK_DATA *RetNewCallbackData
);
参数
[in] Instance
启动 I/O作的微型筛选器驱动程序实例的不透明实例指针。 此参数是必需的,不能 NULL。
[in, optional] FileObject
要用于 I/O作的文件对象指针。 此参数是可选的,可以 NULL。
[out] RetNewCallbackData
指向调用方分配的变量的指针,该变量接收新分配的回调数据(FLT_CALLBACK_DATA)结构的地址。
返回值
FltAllocateCallbackData 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:
返回代码 | 描述 |
---|---|
|
FltAllocateCallbackData 尝试分配回调数据结构时遇到池分配失败。 这是一个错误代码。 |
言论
微型筛选器驱动程序可以调用 FltAllocateCallbackData,为微型筛选器驱动程序启动的 I/O作分配回调数据(FLT_CALLBACK_DATA)结构。
初始化 FltAllocateCallbackData返回的回调数据结构的参数后,调用方通过将结构传递给 FltPerformSynchronousIo 或 FltPerformAsynchronousIo来启动 I/O作。 这些例程仅将 I/O作发送到附加到启动实例以下的微型筛选器驱动程序实例(在 实例 参数中指定的)和文件系统。 附加在指定实例上方的微型筛选器驱动程序不会收到 I/O作。
微型筛选器驱动程序只能启动基于 IRP 的 I/O作。 它们无法启动快速 I/O 或文件系统筛选器(FSFilter)回调作。
微型筛选器驱动程序应仅对无法使用以下例程的 I/O作使用 FltAllocateCallbackData、FltPerformAsynchronousIo和 FltPerformSynchronousIo:
不再需要 FltAllocateCallbackData 分配的回调数据结构时,调用方负责通过 调用 fltFreeCallbackData来释放它。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
IRQL | <= APC_LEVEL |