FltCommitComplete 関数 (fltkernel.h)

FltCommitComplete ルーチンは、TRANSACTION_NOTIFY_COMMIT通知を確認します。

構文

NTSTATUS FLTAPI FltCommitComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

パラメーター

[in] Instance

呼び出し元の不透明なインスタンス ポインター。

[in] Transaction

トランザクションの不透明なトランザクション ポインター。

[in, optional] TransactionContext

トランザクションのミニフィルター ドライバーのコンテキストへのポインター。 このパラメーターは省略可能であり、NULL できます。

戻り値

FltCommitComplete は、STATUS_SUCCESSまたは次のような適切な NTSTATUS 値を返します。

リターン コード 形容
STATUS_NOT_FOUND
ミニフィルター ドライバーは、トランザクションにコンテキストを設定しませんでした。 これはエラー コードです。

備考

このルーチンは、Windows Vista 以降で使用できます。

トランザクションに参加しているミニフィルター ドライバーは、トランザクションのコミット中にTRANSACTION_NOTIFY_COMMIT通知を受け取ることができます。 ミニフィルター ドライバーに通知を送信するには、フィルター マネージャーは、ミニフィルター ドライバーの TransactionNotificationCallback ルーチンを呼び出します。 ミニフィルター ドライバーは、次の 2 つの方法のいずれかでこの通知を確認します。

  • ミニフィルター ドライバーの TransactionNotificationCallback ルーチンは、必要な処理を実行し、STATUS_SUCCESSを返します。 この場合、ミニフィルター ドライバーは FltCommitComplete 呼び出しません。
  • ミニフィルター ドライバーの TransactionNotificationCallback ルーチンは、ワーカー スレッドに必要な処理をポストし、STATUS_PENDINGを返します。 処理を非同期的に実行した後、ミニフィルター ドライバーの作業ルーチンは、FltCommitComplete を呼び出して、この処理が完了したことを示す必要があります。 ミニフィルター ドライバーの作業ルーチンが FltCommitComplete 呼び出さない場合は、カーネル トランザクション マネージャーがトランザクションコミット操作を完了できません。
TransactionNotificationCallback ルーチンを登録するために、ミニフィルター ドライバーは、PFLT_TRANSACTION_NOTIFICATION_CALLBACK 型のルーチンのアドレスを、ミニフィルター ドライバーが FltRegisterFilter の Registration パラメーターとして渡す FLT_REGISTRATION 構造体の TransactionNotificationCallback メンバー格納します。

トランザクションに参加するには、FltEnlistInTransaction 呼び出します。

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

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ Fltmgr.lib
IRQL PASSIVE_LEVEL

関連項目

FLT_REGISTRATION

FltAllocateContext の

FltDeleteContext の

FltDeleteTransactionContext の

FltEnlistInTransaction を する

FltGetTransactionContext の

FltPrePrepareComplete を する

FltPrepareComplete の

FltRegisterFilter の

FltReleaseContext の

FltRollbackComplete を する

FltRollbackEnlistment の

FltSetTransactionContext の

PFLT_TRANSACTION_NOTIFICATION_CALLBACK