次の方法で共有


FltGetStreamHandleContext 関数 (fltkernel.h)

FltGetStreamHandleContext ルーチンは、特定のミニフィルター ドライバー インスタンスによってストリーム ハンドルに設定されたコンテキストを取得します。

構文

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

パラメーター

[in] Instance

コンテキストを取得するミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。

[in] FileObject

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

[out] Context

コンテキストのアドレスを受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターを NULL に設定することはできません。

戻り値

FltGetStreamHandleContext は、要求されたコンテキストを正常に返したときにSTATUS_SUCCESSを返します。 それ以外の場合は、次のいずれかの適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_NOT_FOUND 現時点では、このファイルに一致するコンテキストが見つからなかったため、 FltMgrContext をNULL_CONTEXTに設定します。 これはエラー コードです。
STATUS_NOT_SUPPORTED ファイル システムでは、このファイル ストリームのストリームごとのコンテキストはサポートされていません。 これはエラー コードです。

注釈

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

FltGetStreamHandleContext は、特定のミニフィルター ドライバーによってストリーム ハンドルに設定されたコンテキストを取得します。

FltGetStreamHandleContext は、Context パラメーターが指すコンテキストの参照カウントをインクリメントします。 このコンテキスト ポインターが不要になった場合、呼び出し元は FltReleaseContext を呼び出して参照カウントをデクリメントする必要があります。 したがって、 FltGetStreamHandleContext の呼び出しが成功するたびに、 FltReleaseContext の後続の呼び出しと一致する必要があります。

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

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

ストリーム ハンドル コンテキストを削除するには、 FltDeleteStreamHandleContext または FltDeleteContext を呼び出します。

要件

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

こちらもご覧ください

FltAllocateContext

FltDeleteContext

FltDeleteStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext