FltCommitComplete 函数 (fltkernel.h)

FltCommitComplete 例程确认TRANSACTION_NOTIFY_COMMIT通知。

语法

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

参数

[in] Instance

调用方不透明实例指针。

[in] Transaction

事务的不透明事务指针。

[in, optional] TransactionContext

指向事务的微型筛选器驱动程序上下文的指针。 此参数是可选的,可以 NULL

返回值

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

返回代码 描述
STATUS_NOT_FOUND
微型筛选器驱动程序未在事务上设置上下文。 这是一个错误代码。

言论

此例程在 Windows Vista 及更高版本上可用。

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

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

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

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

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

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

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

要求

要求 价值
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
Fltmgr.lib
IRQL PASSIVE_LEVEL

另请参阅

FLT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK