The FltIsOperationSynchronous routine determines whether a given callback data structure (FLT_CALLBACK_DATA) represents a synchronous or asynchronous I/O operation.
BOOLEAN FLTAPI FltIsOperationSynchronous( PFLT_CALLBACK_DATA CallbackData );
Pointer to the callback data structure for the operation (FLT_CALLBACK_DATA).
FltIsOperationSynchronous returns TRUE if the operation is synchronous, and FALSE if the operation is asynchronous.
FltIsOperationSynchronous determines whether a given callback data structure (FLT_CALLBACK_DATA) represents a synchronous or asynchronous I/O operation, according to the following conditions:
If the operation is not an IRP-based I/O operation, the operation is synchronous. To determine whether an operation is IRP-based, use the FLT_IS_IRP_OPERATION macro.
If the operation is an asynchronous paging I/O operation, the operation is asynchronous, even if one of the other conditions in this list is true.
If the operation is a synchronous paging I/O operation, the operation is synchronous.
If the file object for the operation was opened for synchronous I/O, the operation is synchronous.
If the IRP_SYNCHRONOUS_API flag is set in the IRP for the operation, the operation is synchronous. This flag is set for operations, such as IRP_MJ_QUERY_INFORMATION and IRP_MJ_SET_INFORMATION, that are always synchronous, even when performed on a file object that was opened for asynchronous I/O.
If none of the above conditions is true, the operation is asynchronous.
|Header||fltkernel.h (include Fltkernel.h)|