次の方法で共有


FltGetContexts 関数 (fltkernel.h)

FltGetContexts ルーチンは、現在の操作に関連するオブジェクトのミニフィルター ドライバーのコンテキストを取得します。

構文

VOID FLTAPI FltGetContexts(
  PCFLT_RELATED_OBJECTS FltObjects,
  FLT_CONTEXT_TYPE      DesiredContexts,
  PFLT_RELATED_CONTEXTS Contexts
);

パラメーター

FltObjects

[入力]現在 の操作 に関連するオブジェクトの不透明なポインターを含むFLT_RELATED_OBJECTS構造体へのポインター。 このパラメーターの詳細については、「解説」セクションを参照してください。

DesiredContexts

[入力]取得するコンテキストの種類を識別します。 このパラメーターには、次の値のビットごとの OR を指定できます。

定数
FLT_VOLUME_CONTEXT 0x0001
FLT_INSTANCE_CONTEXT 0x0002
FLT_FILE_CONTEXT 0x0004
FLT_STREAM_CONTEXT 0x0008
FLT_STREAMHANDLE_CONTEXT 0x0010
FLT_TRANSACTION_CONTEXT 0x0020
FLT_SECTION_CONTEXT (Windows 8 以降) 020040
FLT_ALL_CONTEXTS すべてのコンテキスト値のビットごとの OR

Contexts

[out]要求されたコンテキストを受け取る呼び出し元によって割り当てられた FLT_RELATED_CONTEXTS 構造体へのポインター。 このパラメーターは必須であり、NULL に設定することはできません。 FltMgr は 、次の場合に構造体メンバーを 0 に設定します。

  • 呼び出し元が要求しなかったコンテキスト。
  • 呼び出し元が要求したが 、FltMgr が見つからなかったコンテキスト。

戻り値

[なし] :

解説

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

ミニフィルター ドライバーは 、FltGetContexts を呼び出して、 FLT_RELATED_OBJECTS 構造体内のオブジェクトのミニフィルター ドライバーのコンテキストへのポインターを取得します。

次のミニフィルター ドライバー コールバック ルーチン型は、FltObjects 入力パラメーターとしてFLT_RELATED_OBJECTS構造体へのポインターを受け取ります。

FltGetContexts は、Contexts パラメーターが指すFLT_RELATED_CONTEXTS構造体で返される各コンテキストの参照カウントをインクリメントします。 したがって、 FltGetContexts の呼び出しが成功するたびに、呼び出し元は次のいずれかを行う必要があります。

  • Contexts パラメーターが指す構造体全体に対して FltReleaseContexts を呼び出します。
  • 構造体で返される各コンテキストに対して FltReleaseContext を呼び出し、構造体で返される各コンテキスト フィールドを 0 に設定します。

要件

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

こちらもご覧ください

FLT_RELATED_CONTEXTS

FLT_RELATED_OBJECTS

FltGetContextsEx

FltRegisterFilter

FltReleaseContext

FltReleaseContexts

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK