次の方法で共有


FltDeleteTransactionContext 関数 (fltkernel.h)

FltDeleteTransactionContext ルーチンは、特定のトランザクションからコンテキストを削除し、コンテキストに削除のマークを付けます。

構文

NTSTATUS FLTAPI FltDeleteTransactionContext(
  [in]            PFLT_INSTANCE Instance,
  [in]            PKTRANSACTION Transaction,
  [out, optional] PFLT_CONTEXT  *OldContext
);

パラメーター

[in] Instance

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

[in] Transaction

コンテキストが削除されているトランザクションの不透明なトランザクション ポインター。

[out, optional] OldContext

削除されたコンテキストのアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 OldContextNULL ではなく、NULL_CONTEXTを指していない場合、呼び出し元は FltReleaseContext を呼び出して、不要になったときにこのコンテキストを解放する必要があります。

戻り値

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

リターン コード 説明
STATUS_FLT_DELETING_OBJECT 指定された インスタンス が破棄されています。 これはエラー コードです。
STATUS_NOT_FOUND 一致するコンテキストが見つかりませんでした。 これはエラー コードです。

注釈

コンテキストの詳細については、「 ミニフィルター コンテキストについて」を参照してください。

コンテキストは参照カウントされるため、通常、ミニフィルター ドライバーが FltDeleteTransactionContext などのルーチンを呼び出してコンテキストを明示的に削除する必要はありません。

ミニフィルター ドライバーは FltDeleteTransactionContext を呼び出して、トランザクションからコンテキストを削除し、コンテキストに削除のマークを付けます。 コンテキストは、通常、未処理の参照がない限り、すぐに解放されます (たとえば、コンテキストが別のスレッドによって引き続き使用されているため)。

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

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

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

要件

要件
サポートされている最小のクライアント Windows Vista 以降にのみ適用される
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FltAllocateContext

FltDeleteContext

FltCommitComplete

FltEnlistInTransaction

FltGetTransactionContext

FltPrePrepareComplete

FltPrepareComplete

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext