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
フィルター マネージャーがミニフィルター ドライバーに送信する通知の種類を、次の表に示す 1 つ以上の値として指定します。 このパラメーターは必須であり、0 にすることはできません。
価値 | 意味 |
---|---|
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 値を返します。
リターン コード | 形容 |
---|---|
|
呼び出し元は既にトランザクションに参加しています。 これはエラー コードです。 |
|
Instance パラメーターで指定されたインスタンスが切断されています。 これはエラー コードです。 |
|
FltEnlistInTransaction プール割り当てエラーが発生しました。 これはエラー コードです。 |
|
呼び出し元は、TransactionNotificationCallback ルーチンを登録しませんでした。 これはエラー コードです。 |
|
呼び出し元が、NotificationMask パラメーターに無効な値を指定しました。 これはエラー コードです。 |
備考
ミニフィルター ドライバーは、FltEnlistInTransaction 呼び出してトランザクションに参加させます。 FltEnlistInTransaction 呼び出す前に、ミニフィルター ドライバーは、TransactionNotificationCallback ルーチンを登録している必要があります。 それ以外の場合、FltEnlistInTransaction 呼び出しは失敗します。
TransactionNotificationCallback ルーチンを登録するために、ミニフィルター ドライバーは、PFLT_TRANSACTION_NOTIFICATION_CALLBACK 型のルーチンのアドレスを、ミニフィルター ドライバーが FltRegisterFilter の Registration パラメーターとして渡す FLT_REGISTRATION 構造体の TransactionNotificationCallback メンバー格納します。
トランザクションをロールバックまたは中止するには、FltRollbackEnlistment 呼び出します。
新しいトランザクション コンテキストを割り当てるには、FltAllocateContext 呼び出します。
トランザクション コンテキストを取得するには、FltGetTransactionContext 呼び出します。
トランザクション コンテキストを削除するには、FltDeleteTransactionContext 呼び出すか、FltDeleteContext します。
トランザクション コンテキストを設定するには、FltSetTransactionContext を呼び出します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | このルーチンは、Windows Vista 以降のバージョンの Windows で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
ライブラリ | FltMgr.lib |
DLL | FltMgr.sys |
IRQL | <= APC_LEVEL |
関連項目
FltAllocateContext の
FltCommitComplete を する
FltDeleteContext の
FltDeleteTransactionContext の
FltGetTransactionContext の
FltPrePrepareComplete を する
FltPrepareComplete の
FltRegisterFilter の
FltReleaseContext の
FltRollbackComplete を する
FltRollbackEnlistment の
FltSetTransactionContext の