次の方法で共有


FltDeleteStreamHandleContext 関数 (fltkernel.h)

FltDeleteStreamHandleContext 、特定のミニフィルター ドライバー インスタンスが特定のストリーム ハンドルに対して設定したコンテキストを削除し、削除のコンテキストをマークします。

構文

NTSTATUS FLTAPI FltDeleteStreamHandleContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

パラメーター

[in] Instance

ストリーム ハンドルにアタッチされているコンテキストの一覧からコンテキストを削除するミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。

[in] FileObject

ファイル ストリームのファイル オブジェクトへのポインター。

[out] OldContext

削除されたコンテキストのアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、NULL できます。 OldContext が NULL されず、NULL_CONTEXTを指していない場合、呼び出し元は、必要なくなったときにこのコンテキストを解放するために FltReleaseContext呼び出す必要があります。

戻り値

FltDeleteStreamHandleContext は、STATUS_SUCCESSまたは次のいずれかの適切な NTSTATUS 値を返します。

リターン コード 形容
STATUS_FLT_DELETING_OBJECT 指定した インスタンス が取り壊されています。 これはエラー コードです。
STATUS_NOT_FOUND 一致するコンテキストが見つかりませんでした。 これはエラー コードです。
STATUS_NOT_SUPPORTED ファイル システムでは、このファイル ストリーム ハンドルのストリームごとのコンテキストはサポートされていません。 これはエラー コードです。

備考

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

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

ミニフィルター ドライバーは、FltDeleteStreamHandleContext を呼び出して、ストリーム ハンドルからコンテキストを削除し、コンテキストに削除のマークを付けます。 コンテキストは通常、未処理の参照がない限りすぐに解放されます (たとえば、コンテキストが別のスレッドでまだ使用されているため)。

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

ストリーム コンテキストを取得するには、FltGetStreamHandleContext呼び出します。

ストリーム コンテキストを設定するには、FltSetStreamHandleContext呼び出します。

必要条件

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

関連項目

FltAllocateContext

FltDeleteContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext