次の方法で共有


FltReleaseContext 関数 (fltkernel.h)

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

構文

VOID FLTAPI FltReleaseContext(
  [in] PFLT_CONTEXT Context
);

パラメーター

[in] Context

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

戻り値

何一つ

備考

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

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

手記

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

FltAllocateContext FltGetXxxコンテキスト、または FltReferenceContextへの呼び出しが、FltReleaseContext 呼び出しによって最終的に一致する必要があります。

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

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

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ 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