FltPerformSynchronousIo function (fltkernel.h)
A minifilter driver calls FltPerformSynchronousIo to initiate a synchronous I/O operation after calling FltAllocateCallbackData to allocate a callback data structure for the operation.
Syntax
VOID FLTAPI FltPerformSynchronousIo(
[in, out] PFLT_CALLBACK_DATA CallbackData
);
Parameters
[in, out] CallbackData
Pointer to a callback data (FLT_CALLBACK_DATA) structure allocated by a previous call to FltAllocateCallbackData. This parameter is required and cannot be NULL. The caller is responsible for freeing this structure when it is no longer needed by calling FltFreeCallbackData.
Return value
None
Remarks
A minifilter driver calls FltPerformSynchronousIo to initiate a synchronous I/O operation.
Minifilter drivers can only initiate IRP-based I/O operations. They cannot initiate fast I/O or file system filter (FSFilter) callback operations.
FltPerformSynchronousIo sends the I/O operation only to the minifilter driver instances attached below the initiating instance (specified in the Instance parameter to FltAllocateCallbackData), and the file system. Minifilter drivers attached above the specified instance do not receive the I/O operation.
Minifilter drivers should use FltPerformSynchronousIo only in cases where routines such as the following cannot be used:
After FltPerformSynchronousIo returns, the caller can reissue the I/O operation by calling FltReissueSynchronousIo. Alternatively, the caller can free the callback data (FLT_CALLBACK_DATA) structure by calling FltFreeCallbackData or prepare it to be reused by calling FltReuseCallbackData.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |