FltCompletePendedPreOperation function (fltkernel.h)
FltCompletePendedPreOperation resumes processing for an I/O operation that was pended in a minifilter driver's preoperation callback (PFLT_PRE_OPERATION_CALLBACK) routine.
Syntax
VOID FLTAPI FltCompletePendedPreOperation(
PFLT_CALLBACK_DATA CallbackData,
[in] FLT_PREOP_CALLBACK_STATUS CallbackStatus,
[in, optional] PVOID Context
);
Parameters
CallbackData
Pointer to the callback data (FLT_CALLBACK_DATA) structure for the I/O operation. This parameter is required and cannot be NULL.
[in] CallbackStatus
The status value that the minifilter driver is returning for this I/O operation. Cannot be FLT_PREOP_PENDING, FLT_PREOP_SYNCHRONIZE, or FLT_PREOP_DISALLOW_FASTIO. Must be one of the following FLT_PREOP_CALLBACK_STATUS values. For more information about the effect of these values, see the Remarks section of the reference entry for PFLT_PRE_OPERATION_CALLBACK.
Value | Meaning |
---|---|
FLT_PREOP_COMPLETE | The minifilter driver is completing the I/O operation. The Filter Manager does not send the I/O operation to any minifilter drivers below the caller or to the file system. The Filter Manager only calls the postoperation callback (PFLT_POST_OPERATION_CALLBACK) routines of the minifilter drivers above the caller. |
FLT_PREOP_SUCCESS_NO_CALLBACK | The minifilter driver is returning control of the I/O operation to the Filter Manager. The Filter Manager does not call the corresponding postoperation callback, if one exists, during I/O completion. |
FLT_PREOP_SUCCESS_WITH_CALLBACK | The minifilter driver is returning control of the I/O operation to the Filter Manager. The Filter Manager calls the corresponding postoperation callback during I/O completion. |
[in, optional] Context
If FLT_PREOP_SUCCESS_WITH_CALLBACK is specified for CallbackStatus, this parameter is an optional context pointer to be passed to the corresponding postoperation callback routine. If FLT_PREOP_COMPLETE or FLT_PREOP_SUCCESS_NO_CALLBACK is specified for CallbackStatus, this parameter must be NULL.
Return value
None
Remarks
When a minifilter driver's preoperation callback (PFLT_PRE_OPERATION_CALLBACK) routine posts an I/O operation to a work queue and returns FLT_PREOP_PENDING, the Filter Manager stops processing the operation. When the operation is eventually dequeued and processed, the minifilter driver must call FltCompletePendedPreOperation to return the operation to the Filter Manager, which then resumes processing as directed by the CallbackStatus specified by the minifilter driver.
If the CallbackStatus parameter is FLT_PREOP_COMPLETE, FltCompletePendedPreOperation can be called at IRQL <= DISPATCH_LEVEL. Otherwise, callers of FltCompletePendedPreOperation must be running at IRQL <= APC_LEVEL.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
IRQL | See Remarks section. |