FSRTL_PER_FILEOBJECT_CONTEXT構造体 (ntifs.h)
OS は、不透明な FSRTL_PER_FILEOBJECT_CONTEXT 構造を使用して、ファイル オブジェクトのファイル システム フィルター ドライバー定義コンテキスト情報構造を追跡します。
構文
typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;
メンバーズ
Links
同じファイル オブジェクトに関連付けられているすべてのファイル オブジェクトごとのコンテキスト構造の一覧で、この構造体のリンク。 FsRtlInsertPerFileObjectContext
OwnerId
ファイルごとのオブジェクト コンテキスト構造の所有フィルターを一意に識別する、フィルター ドライバーによって割り当てられた変数へのポインター。 この変数の形式は、フィルター ドライバー固有です。 フィルター ライターは、フィルターのデバイス オブジェクトやドライバー オブジェクトのアドレスなど、意味のある便利な値を選択する必要があります。 このメンバーの値を NULL にすることはできません。
InstanceId
同じフィルター ドライバーによって作成されたファイルごとのオブジェクト コンテキスト構造を区別するために使用できる、フィルター ドライバーによって割り当てられた変数へのポインター。 この変数の形式は、フィルター ドライバー固有です。 フィルター ライターは、ファイル オブジェクト自体のアドレスなど、意味のある便利な値を選択する必要があります。 このメンバーの値は NULL にできます。
備考
ファイル システム フィルター ドライバーは、不透明な FSRTL_PER_FILEOBJECT_CONTEXT 構造体を使用して、ファイル オブジェクトのコンテキスト情報を維持できます。 この構造体は、as-is 使用することも、ドライバー定義のファイルごとのオブジェクト ごとのコンテキスト構造に埋め込んだりすることもできます。
各ファイル オブジェクトには、ファイル オブジェクトごとのコンテキスト構造リストを 1 つ関連付けることができます。 このリストの各メンバー (つまり、特定のファイルごとのオブジェクト コンテキスト構造) は、フィルター ドライバーによって所有されます。 フィルター ドライバーの観点から見ると、各フィルター ドライバーは、同じファイル オブジェクトに対して複数のファイル ごとのオブジェクト コンテキスト構造を関連付けることができます。
フィルターで定義された各ファイル オブジェクトごとのコンテキスト構造には、初期化されたFSRTL_PER_FILEOBJECT_CONTEXT構造体を含める必要があります。 FSRTL_PER_FILEOBJECT_CONTEXT構造体は、ページ プールまたは非ページ プールから割り当てることができ、FsRtlInitPerFileObjectContext マクロを使用して初期化する必要があります。
FSRTL_PER_FILEOBJECT_CONTEXT構造体またはファイル オブジェクトごとのフィルター定義のコンテキスト構造 (初期化されたFSRTL_PER_FILEOBJECT_CONTEXT構造体を含む) をファイル オブジェクトのすべてのコンテキスト構造の一覧に挿入するには、FsRtlInsertPerFileObjectContext 関数を使用します。
FSRTL_PER_FILEOBJECT_CONTEXTまたはファイル単位のオブジェクトごとのコンテキスト構造がファイル オブジェクトに関連付けられた後、FsRtlLookupPerFileObjectContext
ファイル システム ミニフィルター ドライバーでは、次の関数を使用しないでください。
- FsRtlInitPerFileObjectContext
- FsRtlInsertPerFileObjectContext
- FsRtlLookupPerFileObjectContext
- FsRtlRemovePerFileObjectContext
代わりに、ミニフィルターは次の関数を使用して、コンテキスト情報をファイル オブジェクトに関連付けることができます。
- FltAllocateContext の
- FltDeleteContext の
- FltSetStreamHandleContext の
- FltDeleteStreamHandleContext の
- FltGetStreamHandleContext の
- FltReleaseContext の
ファイル システム ミニフィルター ドライバーでは、FsRtlXxxPerFileObjectContext 関数を使用しないでください。 代わりに、ミニフィルターは、FltXxxContext 関数を使用して、コンテキスト情報をファイル オブジェクトに関連付けることができます。 完全な一覧については、FSRTL_PER_FILEOBJECT_CONTEXT トピックを参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ヘッダー | ntifs.h (Fltkernel.h、Ntifs.h を含む) |
関連項目
FltAllocateContext の
FltDeleteContext の
FltDeleteStreamHandleContext の
FltGetStreamHandleContext の
FltReleaseContext の
FltSetStreamHandleContext の
FsRtlInsertPerFileObjectContext