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 值,例如:

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

備註

在交易中登記的迷你篩選驅動程式可以在交易完全認可 (收到TRANSACTION_NOTIFY_COMMIT_FINALIZE通知,也就是說,與交易相關聯的所有 資源管理員 ,例如 TxF 已認可) 。 對於執行交易外部掃描的防毒迷你篩選驅動程式,您可以使用此通知值來判斷驅動程式何時應該開始掃描檔案。

若要將TRANSACTION_NOTIFY_COMMIT_FINALIZE通知傳送至迷你篩選驅動程式,篩選管理員會呼叫 minifilter 驅動程式的 TransactionNotificationCallback 例程。 迷你篩選驅動程式會以下列兩種方式之一認可此通知:

  • 迷你篩選驅動程式的 TransactionNotificationCallback 例程會執行任何必要的處理,並傳回STATUS_SUCCESS。 (在此情況下,迷你篩選驅動程式不會呼叫 FltCommitFinalizeComplete.)
  • 迷你篩選驅動程式的 TransactionNotificationCallback 例程會將任何必要的處理張貼到背景工作線程,並傳回STATUS_PENDING。 以異步方式執行處理之後,迷你篩選驅動程式的背景工作線程例程必須呼叫 FltCommitFinalizeComplete ,以指出它已完成此處理。 如果迷你篩選驅動程式的背景工作線程例程未呼叫 FltCommitFinalizeComplete,某些系統資源將會外洩。
若要註冊 TransactionNotificationCallback 例程,迷你篩選驅動程式會將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程位址儲存在minifilter驅動程式傳遞為 FltRegisterFilter註冊參數之FLT_REGISTRATION結構的 TransactionNotificationCallback 成員中。

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

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

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

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

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

如需詳細資訊,請參閱 交易通知

規格需求

需求
最低支援的用戶端 Windows Vista Service Pack 1 (SP1) 及更新版本提供。
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 Fltmgr.lib
IRQL <= APC_LEVEL

另請參閱

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK