次の方法で共有


FltDeleteContext 関数 (fltkernel.h)

FltDeleteContext 、指定したコンテキストを削除対象としてマークします。

構文

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

パラメーター

[in] Context

削除するコンテキストへのポインター。 このパラメーターは必須であり、NULL することはできません。

戻り値

何一つ。

備考

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

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

FltDeleteContext 、コンテキストを削除対象としてマークします。 コンテキストは、(たとえば、コンテキストがまだ別のスレッドによって使用されているため) 未処理の参照がない限り、そのコンテキストの現在の参照が解放されるとすぐに解放されます。

FltDeleteContext を使用する場合は、次考慮する必要があります。

  • ミニフィルター ドライバーが FltDeleteContext 呼び出す場合、ミニフィルター ドライバーにはコンテキストへの参照が既に必要です。 ただし、ミニフィルター ドライバーが FltDeleteStreamHandleContext 、fltDeleteStreamContext FltDeleteInstanceContextなどを呼び出す場合、ミニフィルター ドライバーはコンテキストへの参照を必要としません。 ミニフィルター ドライバーが FltDeleteContext 呼び出した後、そのコンテキストへの参照は引き続き有効です。 ミニフィルター ドライバーは、FltReleaseContext ルーチンを呼び出して、コンテキストへの参照を解放する必要があります。

  • FltDeleteContext 、内部フィルター マネージャー構造からコンテキストを削除します。 その後、FltGetContexts や FltGetInstanceContextなど、コンテキストを取得する関数をさらに呼び出しても、そのコンテキストを見つけることができません。 ただし、コンテキスト メモリは、コンテキストの参照カウントが 0 になるまで解放されません。

コンテキストは、次の表から適切な delete コンテキスト ルーチンを呼び出すことによって削除することもできます。

コンテキストの種類 Delete-Context ルーチン
FLT_FILE_CONTEXT FltDeleteFileContext します (Windows Vista 以降のみ)。
FLT_INSTANCE_CONTEXT FltDeleteInstanceContext
FLT_SECTION_CONTEXT FltCloseSectionForDataScan します (Windows 8 以降のみ)。
FLT_STREAM_CONTEXT FltDeleteStreamContext
FLT_STREAMHANDLE_CONTEXT FltDeleteStreamHandleContext
FLT_TRANSACTION_CONTEXT FltDeleteTransactionContext します (Windows Vista 以降のみ)。
FLT_VOLUME_CONTEXT FltDeleteVolumeContext する

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

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

コンテキストの参照カウントを減らすには、FltReleaseContext 呼び出します。

セクション コンテキストFLT_SECTION_CONTEXT型は、FltDeleteContext 使用して削除することはできません。 代わりに、FltReleaseContext 使用してセクション コンテキストの割り当てを解除します。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

関連項目

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext する

FltReferenceContext

FltReleaseContext