FltReuseCallbackData 函数 (fltkernel.h)

FltReuseCallbackData 例程会重新初始化回调数据结构,以便可以重复使用它。

语法

VOID FLTAPI FltReuseCallbackData(
  [in, out] PFLT_CALLBACK_DATA CallbackData
);

参数

[in, out] CallbackData

指向回调数据的指针 (FLT_CALLBACK_DATA 要重用) 结构。 此结构必须由以前调用 FltAllocateCallbackData 分配。 此参数是必需的,不能为 NULL

返回值

备注

FltReuseCallbackData 将回调数据重新初始化 (FLT_CALLBACK_DATA) 结构,以便可以在新的 I/O 操作中使用。 FltReuseCallbackData 不会更改回调数据结构的 I/O 参数块的 TargetInstance 字段或 TargetFileObject 字段。

FltReuseCallbackData 例程释放与提供的 CallbackData 对象关联的任何 MDL 链。 调用该对象的 FltReuseCallbackData 后,指向与 FLT_CALLBACK_DATA 对象关联的 MDL 链的指针将无效。

使用 FltReuseCallbackData 重用回调数据结构比释放结构并分配新结构要快。

微筛选器驱动程序应仅在回调数据结构上使用 FltReuseCallbackData ,该回调数据结构之前使用 FltAllocateCallbackData ,并在调用 FltPerformSynchronousIoFltPerformAsynchronousIo 时使用。

如果回调数据结构用于异步 I/O,则在调用 FltPerformAsynchronousIo 中指定的 CallbackRoutine 之前,微筛选器驱动程序不应调用 FltReuseCallbackData

具体而言,微筛选器驱动程序不应将此例程用于未由微筛选器驱动程序本身分配的任何回调数据结构。

要求

要求
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_CALLBACK_DATA

FltAllocateCallbackData

FltFreeCallbackData

FltPerformAsynchronousIo

FltPerformSynchronousIo

FltReissueSynchronousIo