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 |
---|---|
|
傳回此狀態值表示迷你篩選驅動程式已完成交易。 這是成功的程序代碼。 |
|
傳回此狀態值表示迷你篩選驅動程式尚未完成交易。 這是成功的程序代碼。 |
備註
當 minifilter 驅動程式從 DriverEntry 例程呼叫 FltRegisterFilter 來註冊本身時,它可以將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程註冊為 minifilter 的 TransactionNotificationCallback 例程。
若要註冊 TransactionNotificationCallback 例程,minifilter 驅動程式會將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程位址儲存在 minifilter 驅動程式傳遞為 FltRegisterFilter註冊參數之 FLT_REGISTRATION 結構的 TransactionNotificationCallback 成員中。
篩選管理員會呼叫此例程,以通知迷你篩選驅動程式有關迷你篩選驅動程式登記的交易狀態。
如果迷你篩選驅動程式從這個回呼例程傳回STATUS_PENDING,它最終必須呼叫下列其中一個例程,以指出它已完成處理通知:
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista 和更新版本提供PFLT_TRANSACTION_NOTIFICATION_CALLBACK例程。 |
目標平台 | 桌面 |
標頭 | fltkernel.h (包含 Fltkernel.h) |
IRQL | PASSIVE_LEVEL |