IOCTL_DISK_CREATE_DISK IOCTL (ntdddisk.h)
デバイス オブジェクトの空のパーティションを作成します。 EFI ディスクまたは MBR ディスクで動作できます。 空のディスクを作成するために必要なパラメーターは、ディスクに配置されるパーティション テーブルの種類によって異なります。 詳細については、CREATE_DISKを参照してください。
ディスク ドライバーでは、パーティションが子デバイスであるかのように列挙されます。 したがって、新しいパーティションを作成すると、ディスク クラス ドライバーは、ディスク デバイスに新しい子デバイス (パーティション) があることを IoInvalidateDeviceRelations への呼び出しによって PnP マネージャーに通知します。
メジャー コード
入力バッファー
Irp->AssociatedIrp.SystemBuffer にあるバッファーには、CREATE_DISK データが含まれています。
入力バッファーの長さ
IRP の I/O スタック位置の Parameters.DeviceIoControl.InputBufferLength は、ドライバーで使用できるバッファーのサイズ (バイト単位) を示します。これは、>= sizeof(CREATE_DISK) である必要があります。 それ以外の場合、ドライバーはエラー状態が STATUS_INFO_LENGTH_MISMATCH で返されます。出力バッファー
何一つ。
出力バッファーの長さ
何一つ。
状態ブロック
情報 フィールドは 0 に設定されます。 状態 フィールドは、操作が成功した場合にSTATUS_SUCCESSに設定されます。 その他の使用可能な状態値は、要求されたパーティション スタイルがサポートされていない場合にSTATUS_NOT_SUPPORTEDします。クラス ドライバーがディスク ジオメトリを取得できなかった場合にSTATUS_DEVICE_NOT_READYします。クラス ドライバーがヒープ メモリなどの必要なリソースを取得できなかった場合にSTATUS_INSUFFICIENT_RESOURCESします。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntdddisk.h (Ntdddisk.h を含む) |