FltEnlistInTransaction 函式 (fltkernel.h)
FltEnlistInTransaction 例程會在指定的交易中登記迷你篩選驅動程式。
語法
NTSTATUS FLTAPI FltEnlistInTransaction(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in] PFLT_CONTEXT TransactionContext,
[in] NOTIFICATION_MASK NotificationMask
);
參數
[in] Instance
呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL。
[in] Transaction
交易的不透明交易指標。
[in] TransactionContext
迷你篩選驅動程式交易內容的指標。 這個參數是必要的,而且不能是 NULL。
[in] NotificationMask
指定篩選管理員傳送至迷你篩選驅動程式的通知類型,做為下表所列的一或多個值。 這個參數是必要的,而且不能是零。
值 | 意義 |
---|---|
TRANSACTION_NOTIFY_COMMIT | 此通知會在認可交易時傳送。 |
TRANSACTION_NOTIFY_COMMIT_FINALIZE | 針對 Windows Vista SP1 和更新版本,當交易完全認可 (時,即當所有與交易相關聯的 資源管理員 ,例如 TxF 認可) 時,就會傳送此通知。 |
TRANSACTION_NOTIFY_PREPARE | 當交易進入準備認可階段時,就會傳送此通知。 |
TRANSACTION_NOTIFY_PREPREPARE | 當交易進入預先準備進行認可階段時,就會傳送此通知。 |
TRANSACTION_NOTIFY_ROLLBACK | 當交易回復或中止時,就會傳送此通知。 |
FLT_MAX_TRANSACTION_NOTIFICATIONS | TRANSACTION_NOTIFY_COMMIT |TRANSACTION_NOTIFY_PREPARE |TRANSACTION_NOTIFY_PREPREPARE |TRANSACTION_NOTIFY_ROLLBACK |
傳回值
FltEnlistInTransaction 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | Description |
---|---|
|
呼叫端已在交易中登記。 這是錯誤碼。 |
|
Instance 參數中指定的實例正在中斷。 這是錯誤碼。 |
|
FltEnlistInTransaction 發生集區配置錯誤。 這是錯誤碼。 |
|
呼叫端未註冊 TransactionNotificationCallback 例程。 這是錯誤碼。 |
|
呼叫端為 NotificationMask 參數指定了無效的值。 這是錯誤碼。 |
備註
迷你篩選驅動程式會呼叫 FltEnlistInTransaction 以在交易中登記。 呼叫 FltEnlistInTransaction 之前,迷你篩選驅動程式必須已註冊 TransactionNotificationCallback 例程。 否則, 對 FltEnlistInTransaction 的呼叫將會失敗。
若要註冊 TransactionNotificationCallback 例程,迷你篩選驅動程式會將類型為 PFLT_TRANSACTION_NOTIFICATION_CALLBACK 的例程位址儲存在minifilter驅動程式傳遞為 FltRegisterFilter註冊參數之FLT_REGISTRATION結構的 TransactionNotificationCallback 成員中。
若要復原或中止交易,請呼叫 FltRollbackEnlistment。
若要配置新的交易內容,請呼叫 FltAllocateContext。
若要擷取交易內容,請呼叫 FltGetTransactionContext。
若要刪除交易內容,請呼叫 FltDeleteTransactionContext 或 FltDeleteContext。
若要設定交易內容,請呼叫 FltSetTransactionContext。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 此例程適用於 Windows Vista 和更新版本的 Windows。 |
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | FltMgr.sys |
IRQL | <= APC_LEVEL |