次の方法で共有


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

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

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

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

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

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

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library Fltmgr.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

FLT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK