共用方式為


PFLT_TRANSACTION_NOTIFICATION_CALLBACK回呼函式 (fltkernel.h)

迷你篩選驅動程式可以註冊類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程做為其 TransactionNotificationCallback 例程。

語法

PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;

NTSTATUS PfltTransactionNotificationCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] PFLT_CONTEXT TransactionContext,
  [in] ULONG NotificationMask
)
{...}

參數

[in] FltObjects

FLT_RELATED_OBJECTS結構的指標,其中包含與目前作業相關的物件不透明指標。

[in] TransactionContext

迷你篩選驅動程式的交易內容指標。

[in] NotificationMask

指定篩選管理員傳送至迷你篩選驅動程式的通知類型,做為下列其中一個值。

意義
TRANSACTION_NOTIFY_COMMIT 此通知會在認可交易時傳送。
TRANSACTION_NOTIFY_COMMIT_FINALIZE 針對 Windows Vista SP1 和更新版本,當交易完全認可 (時,即當所有與交易相關聯的 資源管理員 ,例如 TxF 認可) 時,就會傳送此通知。
TRANSACTION_NOTIFY_PREPARE 當交易進入準備認可階段時,就會傳送此通知。
TRANSACTION_NOTIFY_PREPREPARE 當交易進入預先準備進行認可階段時,就會傳送此通知。
TRANSACTION_NOTIFY_ROLLBACK 當交易回復或中止時,就會傳送此通知。

傳回值

PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程會傳回下列其中一個NTSTATUS值:

傳回碼 Description
STATUS_SUCCESS
傳回此狀態值表示迷你篩選驅動程式已完成交易。 這是成功的程序代碼。
STATUS_PENDING
傳回此狀態值表示迷你篩選驅動程式尚未完成交易。 這是成功的程序代碼。

備註

當 minifilter 驅動程式從 DriverEntry 例程呼叫 FltRegisterFilter 來註冊本身時,它可以將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程註冊為 minifilter 的 TransactionNotificationCallback 例程。

若要註冊 TransactionNotificationCallback 例程,minifilter 驅動程式會將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程位址儲存在 minifilter 驅動程式傳遞為 FltRegisterFilter註冊參數之 FLT_REGISTRATION 結構的 TransactionNotificationCallback 成員中。

篩選管理員會呼叫此例程,以通知迷你篩選驅動程式有關迷你篩選驅動程式登記的交易狀態。

如果迷你篩選驅動程式從這個回呼例程傳回STATUS_PENDING,它最終必須呼叫下列其中一個例程,以指出它已完成處理通知:

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRollbackComplete

規格需求

需求
最低支援的用戶端 Windows Vista 和更新版本提供PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程。
目標平台 桌面
標頭 fltkernel.h (包含 Fltkernel.h)
IRQL PASSIVE_LEVEL

另請參閱

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete