FsRtlInsertPerFileObjectContext 関数 (ntifs.h)

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

構文

NTSTATUS FsRtlInsertPerFileObjectContext(
  [in] PFILE_OBJECT                  FileObject,
  [in] PFSRTL_PER_FILEOBJECT_CONTEXT Ptr
);

パラメーター

[in] FileObject

コンテキスト情報を関連付けるファイル オブジェクトへのポインター ( Ptr パラメーターによって指定)。

[in] Ptr

FileObject に関連付けられる呼び出し元によって割り当てられ、初期化FSRTL_PER_FILEOBJECT_CONTEXT構造体へのポインター。 構造体は、そのまま使用することも、ドライバー定義のファイルごとのオブジェクトごとのコンテキスト情報構造に埋め込んだりすることもできます。 構造体を初期化するには、 FsRtlInitPerFileObjectContext マクロを 使用します。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
コンテキスト情報構造がファイル オブジェクトに正常に関連付けられました。
STATUS_INVALID_PARAMETER
FileObject パラメーターは NULL です
STATUS_INSUFFICIENT_RESOURCES
システムには、操作を完了するための十分なリソースがありません。 たとえば、 FileObject にファイル オブジェクト拡張子を割り当てることができませんでした。

注釈

ファイル システム フィルター ドライバーは 、FsRtlInsertPerFileObjectContext を呼び出して、ファイル オブジェクトごとの独自のコンテキスト構造をファイル オブジェクトに関連付けます。 コンテキスト構造には、フィルター ドライバーがファイル オブジェクトに対して保持するコンテキスト情報が含まれています。 FsRtlInsertPerStreamContext 関数は、FileObject のコンテキスト リストに Ptr コンテキスト構造を挿入します

ファイルオブジェクトごとのコンテキスト情報構造体はすべて、初期化されたFSRTL_PER_FILEOBJECT_CONTEXT構造体であるか、含まれている必要があります。 FsRtlInitPerFileObjectContext マクロを使用して、FSRTL_PER_FILEOBJECT_CONTEXT構造体を初期化します。

FSRTL_PER_FILEOBJECT_CONTEXT構造体またはフィルター定義のファイル オブジェクトごとのコンテキスト構造 (初期化されたFSRTL_PER_FILEOBJECT_CONTEXT構造体を含む) がファイル オブジェクトに関連付けられた後、 FsRtlLookupPerFileObjectContext を呼び出して取得するか、 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

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext