IRP_MJ_CREATE
すべてのカーネル モード ドライバーは、DRIVER_DISPATCH コールバック関数で IRP_MJ_CREATE 要求を処理する必要があります。
送信時
オペレーティング システムは、ファイル オブジェクトまたはデバイス オブジェクトへのハンドルを開く IRP_MJ_CREATE 要求を送信します。 たとえば、ドライバーが ZwCreateFile を呼び出すと、オペレーティング システムは、実際に開いている操作を実行する IRP_MJ_CREATE 要求を送信します。
入力パラメーター
Parameters.Create.SecurityContext メンバーは、要求のセキュリティ コンテキストを記述する IO_SECURITY_CONTEXT 構造体を指します。 Parameters.Create.SecurityContext->DesiredAccess メンバーは、呼び出し元によって要求されるアクセス権を指定するアクセス マスクです。
Parameters.Create.Options メンバーは、ハンドルを開くときに使用されるオプションを記述する ULONG 値です。 上位 8 ビットは ZwCreateFile の CreateDisposition パラメーターの値に対応し、下位 24 ビットは ZwCreateFile の CreateOptions パラメーターの値に対応します。
Parameters.Create.ShareAccess メンバーは、共有アクセスの種類を示す USHORT 値です。 この値は、ZwCreateFile の ShareAccess パラメーターの 値に対応します。
Parameters.Create.FileAttributes および Parameters.Create.EaLength メンバーは、ファイル システムおよびファイル システム フィルター ドライバーで使用するために予約されています。 詳細については、インストール可能なファイル システム (IFS) に関するドキュメントの 「IRP_MJ_CREATE」トピックを参照してください。
出力パラメーター
なし
操作
ほとんどのデバイス ドライバーと中間ドライバーは、IRP の I/O 状態ブロックに STATUS_SUCCESS を設定し、作成要求を完了しますが、ドライバーは必要に応じて、DRIVER_DISPATCH コールバック関数を使用して、そのハンドルの後続の I/O 要求のリソースを予約することができます。 たとえば、システム シリアル ドライバーは、そのページ アウト コードをマップし、入出力のためにデバイスを開こうとしているユーザー モード スレッドの後続の I/O 要求を処理するために必要な、すべてのリソースを割り当てます。
要件
ヘッダー |
Wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |