次の方法で共有


FltGetContextsEx 関数 (fltkernel.h)

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

構文

NTSTATUS FLTAPI FltGetContextsEx(
  [in]  PCFLT_RELATED_OBJECTS    FltObjects,
  [in]  FLT_CONTEXT_TYPE         DesiredContexts,
  [in]  SIZE_T                   ContextsSize,
  [out] PFLT_RELATED_CONTEXTS_EX Contexts
);

パラメーター

[in] FltObjects

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

[in] 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 020040
FLT_ALL_CONTEXTS すべてのコンテキスト値のビットごとの OR

[in] ContextsSize

コンテキストが指す FLT_RELATED_CONTEXTS_EX 構造体のサイズ (バイト単位)。 sizeof(FLT_RELATED_CONTEXTS_EX) に設定します。

[out] Contexts

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

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

戻り値

FltGetContextsEx 、正常に完了するとSTATUS_SUCCESSが返されます。 それ以外の場合は、次のいずれかの状態コードが返されます。

コード 意味
STATUS_INVALID_PARAMETER 無効なコンテキスト値が入力されました。

備考

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

ミニフィルター ドライバーは、FltGetContextsEx を呼び出して、FLT_RELATED_OBJECTS 構造体内のオブジェクトのコンテキストへのポインターを取得します。 STATUS_SUCCESSでは、ミニフィルターを使用する前に、コンテキストが 0 ではないことを確認する必要があります。

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 8
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

関連項目

FLT_RELATED_CONTEXTS_EX

FLT_RELATED_OBJECTS

FltRegisterFilter

FltReleaseContext

FltReleaseContextsEx

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK