IO_DRIVER_CREATE_CONTEXT構造体 (ntddk.h)
IO_DRIVER_CREATE_CONTEXT構造体は、
IoCreateFileEx ルーチンはレガシ フィルター ドライバーによって使用され、FltCreateFileEx2 ルーチンはミニフィルター ドライバーによって使用されます。
構文
typedef struct _IO_DRIVER_CREATE_CONTEXT {
CSHORT Size;
struct _ECP_LIST *ExtraCreateParameter;
PVOID DeviceObjectHint;
PTXN_PARAMETER_BLOCK TxnParameters;
PESILO SiloContext;
} IO_DRIVER_CREATE_CONTEXT, *PIO_DRIVER_CREATE_CONTEXT;
メンバーズ
Size
IoInitializeDriverCreateContext ルーチンによって初期化された読み取り専用メンバー。
ExtraCreateParameter
追加の create パラメーター (ECP) エントリの一覧を含む、ECP_LIST 構造体へのポインター。 重要な情報については、次の 解説 セクションを参照してください。
DeviceObjectHint
IO_DRIVER_CREATE_CONTEXTを使用して、
IO_DRIVER_CREATE_CONTEXTを使用して、IoCreateFileEx ルーチンに追加の作成パラメーターを渡す場合、このメンバーは作成要求の送信先となるデバイス オブジェクトへのポインターです。 デバイス オブジェクトは、ファイルまたはディレクトリが存在するボリュームのファイル システム ドライバー スタック内のレガシ フィルターまたはファイル システム デバイス オブジェクトである必要があります。
TxnParameters
作成操作に関連付けるトランザクションへのポインター。 このメンバーの値がトランザクションへの有効なポインターである場合、作成操作はトランザクションの一部になります。 このメンバーの値が NULL
SiloContext
ファイルが存在するコンテナー。 このメンバーは、Windows 10 バージョン 1607 で導入されました。
備考
IO_DRIVER_CREATE_CONTEXT構造体は、ページ プールまたは非ページ プールから割り当てることができます。 IoInitializeDriverCreateContext ルーチン
IO_DRIVER_CREATE_CONTEXT構造体のメンバー (
ECP_LIST構造体には、追加の create パラメーター (ECP) エントリの一覧が含まれています。 ECP リスト (ECP_LIST構造体) 内の各 ECP エントリ (ECP コンテキスト構造) は、IoCreateFileEx と FltCreateFileEx2
するための追加の作成パラメーターとして機能します。 作成操作の一部として ECP を指定するには、正しいルーチンを使用して、IO_DRIVER_CREATE_CONTEXT構造体の ExtraCreateParameter メンバーを初期化します。
レガシ フィルター ドライバーの場合、FsRtlAllocateExtraCreateParameterList ルーチンを使用して、ECP_LIST構造体のメモリ プールを割り当てる必要があります。 オペレーティング システムは、ECP_LIST構造を自動的に解放しません。 代わりに、ECP_LIST構造体が割り当てられると、最終的には、FsRtlFreeExtraCreateParameterList ルーチンを使用して解放する必要があります。
ミニフィルター ドライバーの場合、fltAllocateExtraCreateParameterList ルーチン
使用して、ECP_LIST構造体のメモリ プールを割り当てる必要があります。 オペレーティング システムは、ECP_LIST構造を自動的に解放しません。 代わりに、ECP_LIST構造体が割り当てられると、最終的には、FltFreeExtraCreateParameterList ルーチンを使用して解放する必要があります。
ECP を使用する場合は、適切なルーチンを使用して作成、操作、解放する必要があります。 たとえば、ミニフィルター ドライバーは、FltInsertExtraCreateParameter ルーチンを使用して、ECP リストに ECP エントリを挿入します。 次の 「」セクションでは、これらの必要なルーチンの多くを一覧表示します。
IoCreateFileEx または FltCreateFileEx2の呼び出しから戻ると、ECP リストは変更されず、新しい作成操作の呼び出し または FltCreateFileEx 2 追加の に渡すことができます。 トランザクションのコンテキストでファイルを作成または開くには、IO_DRIVER_CREATE_CONTEXT構造体の TxnParameters メンバーを、IoGetTransactionParameterBlock ルーチンによって返される値に設定します。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddk.h (Ntddk.h、Ntifs.h、Fltkernel.h を含む) |
関連項目
FltAllocateExtraCreateParameterFromLookasideList の
FltAllocateExtraCreateParameterList の
FltCreateFileEx2 を
FltFreeExtraCreateParameter を
FltFreeExtraCreateParameterList を
FltGetEcpListFromCallbackData の
FltInsertExtraCreateParameter の
FltRemoveExtraCreateParameter の
FltSetEcpListIntoCallbackData の
FsRtlAllocateExtraCreateParameterList
FsRtlFreeExtraCreateParameterList
IoCreateFileEx の
IoCreateFileSpecifyDeviceObjectHint の
IoGetTransactionParameterBlock の
IoInitializeDriverCreateContext の