次の方法で共有


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構造体へのポインター。 この構造体は、as-is 使用することも、ドライバー定義のファイルごとのオブジェクト ごとのコンテキスト情報構造に埋め込んだりすることもできます。 構造体を初期化するには、FsRtlInitPerFileObjectContext マクロを使用します。

戻り値

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

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

備考

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

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

FSRTL_PER_FILEOBJECT_CONTEXT構造体またはファイル オブジェクトごとのフィルター定義コンテキスト構造 (初期化されたFSRTL_PER_FILEOBJECT_CONTEXT構造体を含む) がファイル オブジェクトに関連付けられた後は、fsRtlLookupPerFileObjectContext 呼び出して取得するか、fsRtlRemovePerFileObjectContext呼び出して削除できます。

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Fltkernel.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext