次の方法で共有


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 ルーチンを登録するために、ミニフィルター ドライバーは、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

PFLT_TRANSACTION_NOTIFICATION_CALLBACK