FltPrepareComplete 函数 (fltkernel.h)

FltPrepareComplete 例程确认TRANSACTION_NOTIFY_PREPARE通知。

语法

NTSTATUS FLTAPI FltPrepareComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

参数

[in] Instance

调用方不透明的实例指针。

[in] Transaction

事务的不透明事务指针。

[in, optional] TransactionContext

指向微筛选器驱动程序的事务上下文的指针。

返回值

FltPrepareComplete 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:

返回代码 说明
STATUS_NOT_FOUND
微筛选器驱动程序未在事务上设置上下文。 这是错误代码。

注解

事务进入准备提交阶段时,在事务中登记的微筛选器驱动程序可以收到TRANSACTION_NOTIFY_PREPARE通知。 若要将通知发送到微筛选器驱动程序,筛选器管理器调用微筛选器驱动程序的 TransactionNotificationCallback 例程。 微筛选器驱动程序通过以下两种方式之一确认此通知:

  • 微筛选器驱动程序的 TransactionNotificationCallback 例程执行任何所需的处理并返回STATUS_SUCCESS。 在这种情况下,微筛选器驱动程序不调用 FltPrepareComplete
  • 微筛选器驱动程序的 TransactionNotificationCallback 例程将任何所需的处理发布到工作线程,并返回STATUS_PENDING。 异步执行处理后,微筛选器驱动程序的工作例程必须调用 FltPrepareComplete 以指示它已完成此处理。 如果微筛选器驱动程序的工作例程不调用 FltPrepareComplete,则内核事务管理器无法完成事务准备操作。
为了注册 TransactionNotificationCallback 例程,微筛选器驱动程序将 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 类型的例程的地址存储在FLT_REGISTRATION 结构的TransactionNotificationCallback 成员中,该结构是微筛选器驱动程序作为 FltRegisterFilterRegistration 参数传递的。

若要在事务中登记,请调用 FltEnlistInTransaction

若要分配新的事务上下文,请调用 FltAllocateContext

若要检索事务上下文,请调用 FltGetTransactionContext

若要删除事务上下文,请调用 FltDeleteTransactionContextFltDeleteContext

若要设置事务上下文,请调用 FltSetTransactionContext

要求

要求
最低受支持的客户端 FltPrepareComplete 例程在 Windows Vista 及更高版本上可用。
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK