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、FltGetXxxContext、または 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 | 「解説」を参照してください。 |