fltCompletePendedPreOperation 函数 (fltkernel.h)
FltCompletePendedPreOperation 继续处理在微筛选器驱动程序的预操作回调中的 I/O 操作, (PFLT_PRE_OPERATION_CALLBACK) 例程。
语法
VOID FLTAPI FltCompletePendedPreOperation(
PFLT_CALLBACK_DATA CallbackData,
[in] FLT_PREOP_CALLBACK_STATUS CallbackStatus,
[in, optional] PVOID Context
);
参数
CallbackData
指向 I/O 操作的回调数据 (FLT_CALLBACK_DATA) 结构的指针。 此参数是必需的,不能为 NULL。
[in] CallbackStatus
微筛选器驱动程序为此 I/O 操作返回的状态值。 不能FLT_PREOP_PENDING、FLT_PREOP_SYNCHRONIZE或FLT_PREOP_DISALLOW_FASTIO。 必须是以下FLT_PREOP_CALLBACK_STATUS值之一。 有关这些值的效果的详细信息,请参阅 PFLT_PRE_OPERATION_CALLBACK参考条目的“备注”部分。
值 | 含义 |
---|---|
FLT_PREOP_COMPLETE | 微筛选器驱动程序正在完成 I/O 操作。 筛选器管理器不会将 I/O 操作发送到调用方下方的任何微筛选器驱动程序或文件系统。 筛选器管理器仅调用操作后回调 (PFLT_POST_OPERATION_CALLBACK 调用方上方微筛选器驱动程序的) 例程。 |
FLT_PREOP_SUCCESS_NO_CALLBACK | 微筛选器驱动程序将 I/O 操作的控制权返回给筛选器管理器。 筛选器管理器不会在 I/O 完成期间调用相应的操作后回调(如果存在)。 |
FLT_PREOP_SUCCESS_WITH_CALLBACK | 微筛选器驱动程序将 I/O 操作的控制权返回给筛选器管理器。 筛选器管理器在 I/O 完成期间调用相应的操作后回调。 |
[in, optional] Context
如果为 CallbackStatus 指定了 FLT_PREOP_SUCCESS_WITH_CALLBACK,则此参数是传递给相应操作后回调例程的可选上下文指针。 如果为 CallbackStatus 指定了 FLT_PREOP_COMPLETE 或 FLT_PREOP_SUCCESS_NO_CALLBACK,则此参数必须为 NULL。
返回值
无
备注
当微筛选器驱动程序的预操作回调 (PFLT_PRE_OPERATION_CALLBACK) 例程将 I/O 操作发布到工作队列并返回FLT_PREOP_PENDING时,筛选器管理器将停止处理该操作。 当操作最终取消排队并处理时,微筛选器驱动程序必须调用 FltCompletePendedPreOperation 以将操作返回到筛选器管理器,筛选器管理器随后会按照微筛选器驱动程序指定的 CallbackStatus 的指示恢复处理。
如果 CallbackStatus 参数FLT_PREOP_COMPLETE,则可以在 IRQL <= DISPATCH_LEVEL调用 FltCompletePendedPreOperation。 否则, FltCompletePendedPreOperation 的调用方必须在 IRQL <= APC_LEVEL 运行。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
IRQL | 请参见“备注”部分。 |