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 ビットは ZwCreateFileCreateDisposition パラメーターの値に対応し、下位 24 ビットは ZwCreateFileCreateOptions パラメーターの値に対応します。

Parameters.Create.ShareAccess メンバーは、共有アクセスの種類を示す USHORT 値です。 この値は、ZwCreateFileShareAccess パラメーターの 値に対応します。

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 を含む)

関連項目

DRIVER_DISPATCH

DispatchCreateClose

IO_SECURITY_CONTEXT

ZwCreateFile