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 请参见“备注”部分。

另请参阅

FLT_CALLBACK_DATA

FltCbdqInitialize

FltCompletePendedPostOperation

FltQueueDeferredIoWorkItem

PFLT_PRE_OPERATION_CALLBACK