次の方法で共有


FltDeleteStreamContext 関数 (fltkernel.h)

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

構文

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

パラメーター

[in] Instance

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

[in] FileObject

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

[out] OldContext

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

戻り値

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

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

注釈

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

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

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

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

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

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

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL <= APC_LEVEL

こちらもご覧ください

FltAllocateContext

FltDeleteContext

FltGetStreamContext

FltReleaseContext

FltSetStreamContext