次の方法で共有


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 値を返します。

リターン コード 説明
STATUS_FLT_ALREADY_ENLISTED
呼び出し元は既にトランザクションに参加しています。 これはエラー コードです。
STATUS_FLT_DELETING_OBJECT
Instance パラメーターで指定された インスタンス が破棄されています。 これはエラー コードです。
STATUS_INSUFFICIENT_RESOURCES
FltEnlistInTransaction でプール割り当てエラーが発生しました。 これはエラー コードです。
STATUS_INVALID_PARAMETER
呼び出し元が TransactionNotificationCallback ルーチンを登録しませんでした。 これはエラー コードです。
STATUS_INVALID_PARAMETER_4
呼び出し元が NotificationMask パラメーターに無効な値を指定しました。 これはエラー コードです。

注釈

ミニフィルター ドライバーは 、FltEnlistInTransaction を呼び出してトランザクションに参加させます。 FltEnlistInTransaction を呼び出す前に、ミニフィルター ドライバーで TransactionNotificationCallback ルーチンが登録されている必要があります。 それ以外の場合、 FltEnlistInTransaction の呼び出しは失敗します。

TransactionNotificationCallback ルーチンを登録するために、ミニフィルター ドライバーは、ミニフィルター ドライバーが FltRegisterFilterRegistration パラメーターとして渡FLT_REGISTRATION構造体の TransactionNotificationCallback メンバーにPFLT_TRANSACTION_NOTIFICATION_CALLBACK型のルーチンのアドレスを格納します。

トランザクションをロールバックまたは中止するには、 FltRollbackEnlistment を呼び出します。

新しいトランザクション コンテキストを割り当てるには、 FltAllocateContext を呼び出します。

トランザクション コンテキストを取得するには、 FltGetTransactionContext を呼び出します。

トランザクション コンテキストを削除するには、 FltDeleteTransactionContext または FltDeleteContext を呼び出します。

トランザクション コンテキストを設定するには、 FltSetTransactionContext を呼び出します。

要件

要件
サポートされている最小のクライアント このルーチンは、Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] FltMgr.sys
IRQL <= APC_LEVEL

こちらもご覧ください

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltGetTransactionContext

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK