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の