次の方法で共有


FsRtlLookupPerFileObjectContext 関数 (ntifs.h)

"レガシ" ファイル システム フィルター ドライバーの場合、 FsRtlLookupPerFileObjectContext 関数は、以前にファイル オブジェクトに関連付けられたコンテキスト情報を取得します。

構文

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlLookupPerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

パラメーター

[in] FileObject

コンテキスト情報のクエリを実行するファイル オブジェクトへのポインター。

[in, optional] OwnerId

ファイルオブジェクトごとのコンテキスト構造の所有フィルターを一意に識別する呼び出し元割り当て変数へのポインター。 この変数の形式は、フィルター ドライバー固有です。

[in, optional] InstanceId

同じフィルター ドライバーによって作成されたファイルオブジェクトごとのコンテキスト構造を区別するために使用できる、呼び出し元によって割り当てられた変数へのポインター。 この変数の形式は、フィルター ドライバー固有です。 このパラメーターは省略可能であり、 NULL にすることができます

戻り値

FsRtlLookupPerFileObjectContext は、見つかった最初の一致するファイルオブジェクトごとのコンテキストへのポインターを返します。 一致するものが見つからない場合、 FsRtlLookupPerFileObjectContext はNULL を返します。

注釈

"レガシ" ファイル システム フィルター ドライバーは 、FsRtlLookupPerFileObjectContext を呼び出して、ファイル オブジェクトのファイル ごとのコンテキスト構造を取得します。 コンテキスト構造には、フィルター ドライバーがファイル オブジェクトに対して保持するコンテキスト情報が含まれています。 このコンテキスト構造は、 FsRtlInsertPerFileObjectContext 関数を呼び出すことによって、ファイル オブジェクトに以前に関連付けられている必要があります。

FSRTL_PER_FILEOBJECT_CONTEXT構造体が、ファイル オブジェクトごとのコンテキスト構造で定義されたフィルターに埋め込まれている場合は、 CONTAINING_RECORD マクロを使用して、フィルター定義構造体の先頭へのポインターを取得できます。

ファイル オブジェクトごとのコンテキスト構造を初期化するには、 FsRtlInitPerFileObjectContext マクロを 使用します。

初期化されたファイル オブジェクトごとのコンテキスト構造をファイル オブジェクトに関連付けるには、 FsRtlInsertPerFileObjectContext 関数を使用します。

ファイル オブジェクトに関連付けられているファイル オブジェクトごとのコンテキスト構造を削除するには、 FsRtlRemovePerFileObjectContext 関数を使用します。

メモ ファイル システム ミニフィルター ドライバーでは 、FsRtlXxxPerFileObjectContext 関数を使用しないでください。 代わりに、ミニフィルターは FltXxxコンテキスト 関数を使用して、コンテキスト情報をファイル オブジェクトに関連付けることができます。 完全な一覧については、 FSRTL_PER_FILEOBJECT_CONTEXT トピックを参照してください。
 

要件

要件
サポートされている最小のクライアント Windows Vista
対象プラットフォーム ユニバーサル
Header ntifs.h (Fltkernel.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlRemovePerFileObjectContext