FltGetNewSystemBufferAddress function (fltkernel.h)
The FltGetNewSystemBufferAddress function retrieves the AssociatedIrp.SystemBuffer buffer, which the file system has allocated. A minifilter driver's post-callback routine calls this function.
Syntax
PVOID FLTAPI FltGetNewSystemBufferAddress(
[in] PFLT_CALLBACK_DATA CallbackData
);
Parameters
[in] CallbackData
A pointer to a FLT_CALLBACK_DATA structure that represents an I/O operation.
Return value
If the AssociatedIrp.SystemBuffer buffer was allocated by the file system, FltGetNewSystemBufferAddress returns a pointer to this buffer; otherwise it returns NULL.
Remarks
A minifilter driver's post-callback routine calls FltGetNewSystemBufferAddress function to retrieve a pointer to the AssociatedIrp.SystemBuffer buffer that the file system has allocated. A minifilter driver should call this function only when the FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER flag is set in CallbackData.Flags.
When the file system allocates its own AssociatedIrp.SystemBuffer buffer, Filter Manager will set the FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER flag. This signals the minifilter that the buffer they received in the pre-operation is not the one that has the data read from the file system.
If the FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER flag is not set, then this routine returns NULL.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Microsoft Windows 7 and later versions of the Windows operating system. |
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | Fltmgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |