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:

FltClose

FltCreateFile

FltQueryInformationFile

FltQueryVolumeInformation

FltReadFile

FltSetInformationFile

FltSetVolumeInformation

FltTagFile

FltUntagFile

FltWriteFile

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

See also

FLT_CALLBACK_DATA

FltAllocateCallbackData

FltClose

FltCreateFile

FltFreeCallbackData

FltPerformAsynchronousIo

FltQueryInformationFile

FltQueryVolumeInformation

FltReadFile

FltReissueSynchronousIo

FltReuseCallbackData

FltSetInformationFile

FltSetVolumeInformation

FltTagFile

FltUntagFile

FltWriteFile