FltCommitFinalizeComplete 函数 (fltkernel.h)

FltCommitFinalizeComplete 例程确认TRANSACTION_NOTIFY_COMMIT_FINALIZE通知。

语法

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

参数

[in] Instance

指向微筛选器驱动程序实例的不透明指针。 此参数是必需的,不能为 NULL

[in] Transaction

指向微筛选器驱动程序当前登记的事务的不透明指针。 此参数是必需的,不能为 NULL

[in, optional] TransactionContext

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

返回值

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

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

注解

在事务中登记的微筛选器驱动程序可以在事务完全提交 (即与事务关联的所有 资源管理器 (如 TxF)提交) 时收到TRANSACTION_NOTIFY_COMMIT_FINALIZE通知。 对于在事务外部执行扫描的防病毒微筛选器驱动程序,可以使用此通知值来确定驱动程序何时开始扫描文件。

若要将TRANSACTION_NOTIFY_COMMIT_FINALIZE通知发送到微筛选器驱动程序,筛选器管理器调用微筛选器驱动程序的 TransactionNotificationCallback 例程。 微筛选器驱动程序通过以下两种方式之一确认此通知:

  • 微筛选器驱动程序的 TransactionNotificationCallback 例程执行任何所需的处理,并返回STATUS_SUCCESS。 (在这种情况下,微筛选器驱动程序不调用 FltCommitFinalizeComplete.)
  • 微筛选器驱动程序的 TransactionNotificationCallback 例程将任何所需的处理发布到工作线程,并返回STATUS_PENDING。 异步执行处理后,微筛选器驱动程序的工作线程例程必须调用 FltCommitFinalizeComplete 以指示它已完成此处理。 如果微筛选器驱动程序的工作线程例程不调用 FltCommitFinalizeComplete,某些系统资源将泄漏。
为了注册 TransactionNotificationCallback 例程,微筛选器驱动程序将 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 类型的例程的地址存储在FLT_REGISTRATION 结构的TransactionNotificationCallback 成员中,该结构是微筛选器驱动程序作为 FltRegisterFilterRegistration 参数传递的。

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

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

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

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

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

有关详细信息,请参阅 事务通知

要求

要求
最低受支持的客户端 在 Windows Vista Service Pack 1 (SP1) 及更高版本中可用。
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library Fltmgr.lib
IRQL <= APC_LEVEL

另请参阅

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK