FltReuseCallbackData function (fltkernel.h)
The FltReuseCallbackData routine reinitializes a callback data structure so that it can be reused.
Syntax
VOID FLTAPI FltReuseCallbackData(
[in, out] PFLT_CALLBACK_DATA CallbackData
);
Parameters
[in, out] CallbackData
Pointer to the callback data (FLT_CALLBACK_DATA) structure to be reused. This structure must have been allocated by a previous call to FltAllocateCallbackData. This parameter is required and cannot be NULL.
Return value
None
Remarks
FltReuseCallbackData reinitializes a callback data (FLT_CALLBACK_DATA) structure so that it can be used in a new I/O operation. FltReuseCallbackData does not change the TargetInstance field or the TargetFileObject field of the callback data structure's I/O parameter block.
The FltReuseCallbackData routine frees any MDL chain associated with the supplied CallbackData object. A pointer to an MDL chain associated with a FLT_CALLBACK_DATA object will be invalid after a call to FltReuseCallbackData for that object.
Using FltReuseCallbackData to reuse a callback data structure is faster than freeing the structure and allocating a new one.
A minifilter driver should use FltReuseCallbackData only on a callback data structure that the minifilter driver previously allocated with FltAllocateCallbackData and used in a call to FltPerformSynchronousIo or FltPerformAsynchronousIo.
If the callback data structure was used for asynchronous I/O, the minifilter driver should not call FltReuseCallbackData until the CallbackRoutine specified in the call to FltPerformAsynchronousIo is called.
In particular, a minifilter driver should not use this routine for any callback data structures not allocated by the minifilter driver itself.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |