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