共用方式為


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值:

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

言論

當小型篩選驅動程式透過從其 DriverEntry 例程呼叫 FltRegisterFilter 來註冊自己時,它可以將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 類型的例程註冊為迷你篩選程式的 TransactionNotificationCallback 例程。

若要註冊 TransactionNotificationCallback 例程,迷你篩選驅動程式會將類型PFLT_TRANSACTION_NOTIFICATION_CALLBACK的例程位址儲存在 TransactionNotificationCallbackFLT_REGISTRATION 結構的成員中,迷你篩選驅動程式會傳遞為 FltRegisterFilterRegistration 參数。

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

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

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRollbackComplete

要求

要求 價值
最低支援的用戶端 PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程適用於 Windows Vista 和更新版本。
目標平臺 桌面
標頭 fltkernel.h (包括 Fltkernel.h)
IRQL PASSIVE_LEVEL

另請參閱

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete