次の方法で共有


FltReleaseContext 関数 (fltkernel.h)

FltReleaseContext は、 コンテキストの参照カウントをデクリメントします。

構文

VOID FLTAPI FltReleaseContext(
  [in] PFLT_CONTEXT Context
);

パラメーター

[in] Context

コンテキストへのポインター。 ボリューム、インスタンス、ストリーム、またはストリーム ハンドルのコンテキスト オブジェクトへの有効なポインターである必要があります。 このパラメーターは必須であり、 NULL にすることはできません。

戻り値

なし

解説

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

ミニフィルター ドライバーは 、FltReleaseContext を呼び出してコンテキストを解放します。 FltReleaseContext は 、指定されたコンテキストの参照カウントをデクリメントします。 参照カウントが 0 に達すると、呼び出し元が IRQL <= APC_LEVELで実行されている場合、コンテキストはすぐに解放されます。 呼び出し元が IRQL DISPATCH_LEVELで実行されている場合、作業項目はコンテキストを解放するようにスケジュールされます。

注意

FltReleaseContext が返された後は、コンテキストが既に解放されている可能性があるため、呼び出し元はコンテキストを使用しないでください。

FltAllocateContextFltGetXxxContext、または FltReferenceContext を正常に呼び出すたびに、FltReleaseContext の呼び出しによって最終的に一致する必要があります。

FltSetXxxContext によって返される OldContext ポインターと、FltDeleteContext の呼び出しに使用される Context パラメーターも、必要なくなったときに FltReleaseContext を呼び出して解放する必要があることに注意してください。

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

コンテキストの参照カウントをインクリメントするには、 FltReferenceContext を呼び出します。

コンテキスト参照カウントの詳細については、「コンテキストの 参照」を参照してください。

FltReleaseContext の呼び出し元は、非ページ プールからコンテキストが割り当てられた場合、IRQL <= DISPATCH_LEVELで実行されている必要があります。 ページ プールからコンテキストが割り当てられた場合、呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL 「解説」を参照してください。

こちらもご覧ください

FltAllocateContext

FltDeleteContext

FltGetContexts

FltGetContextsEx

FltGetFileContext

FltGetInstanceContext

FltGetSectionContext

FltGetStreamContext

FltGetStreamHandleContext

FltGetTransactionContext

FltGetVolumeContext

FltReferenceContext

FltReleaseContexts

FltSetFileContext

FltSetInstanceContext

FltSetStreamContext

FltSetStreamHandleContext

FltSetTransactionContext

FltSetVolumeContext