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 值,如下所示:

傳回碼 Description
STATUS_NOT_FOUND
迷你篩選驅動程式未在交易上設定內容。 這是錯誤碼。

備註

在交易中登記的迷你篩選驅動程式,可以在交易正在進行復原或中止時收到TRANSACTION_NOTIFY_ROLLBACK通知。 若要將通知傳送至迷你篩選驅動程式,篩選管理員會呼叫迷你篩選驅動程式的 TransactionNotificationCallback 例程。 迷你篩選驅動程式會以下列兩種方式之一認可此通知:

  • 迷你篩選驅動程式的 TransactionNotificationCallback 例程會執行任何所需的處理,並傳回STATUS_SUCCESS。 在此情況下,迷你篩選驅動程式不會呼叫 FltRollbackComplete
  • 迷你篩選驅動程式的 TransactionNotificationCallback 例程會將任何所需的處理張貼到背景工作線程,並傳回STATUS_PENDING。 以異步方式執行處理之後,迷你篩選驅動程式的工作例程必須呼叫 FltRollbackComplete ,以指出它已完成此處理。 如果迷你篩選驅動程式的工作例程未呼叫 FltRollbackComplete,核心交易管理員就無法完成交易復原或中止作業。
若要註冊 TransactionNotificationCallback 例程,迷你篩選驅動程式會將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程位址儲存在minifilter驅動程式傳遞為 FltRegisterFilter註冊參數之FLT_REGISTRATION結構的 TransactionNotificationCallback 成員中。

若要在交易中登記,請呼叫 FltEnlistInTransaction

若要配置新的交易內容,請呼叫 FltAllocateContext

若要擷取交易內容,請呼叫 FltGetTransactionContext

若要刪除交易內容,請呼叫 FltDeleteTransactionContextFltDeleteContext

若要設定交易內容,請呼叫 FltSetTransactionContext

規格需求

需求
最低支援的用戶端 此例程可在 Windows Vista 和更新版本上使用。
目標平台 Universal
標頭 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