FltRollbackComplete 函数 (fltkernel.h)

FltRollbackComplete 例程确认TRANSACTION_NOTIFY_ROLLBACK通知。

语法

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

参数

[in] Instance

调用方不透明实例指针。

[in] Transaction

事务的不透明事务指针。

[in, optional] TransactionContext

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

返回值

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

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

言论

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

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

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

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

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

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

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

要求

要求 价值
最低支持的客户端 此例程在 Windows Vista 及更高版本上可用。
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
Fltmgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

另请参阅

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK