IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
物理ディスクのジオメトリ (メディアの種類、シリンダー数、シリンダーあたりのトラック数、トラックあたりのセクター数、セクターあたりのバイト数) に関する情報を返します。
IOCTL_DISK_GET_DRIVE_GEOMETRY_EXと以前の IOCTL_DISK_GET_DRIVE_GEOMETRY 要求の違いは、マスター ブート レコード (MBR) と GUID パーティション テーブル (GPT) タイプのパーティション メディアの両方から情報を取得できるIOCTL_DISK_GET_DRIVE_GEOMETRY_EXのに対し、IOCTL_DISK_GET_DRIVE_GEOMETRYは MBR スタイルのメディアのみを読み取ることができる点です。
メジャー コード
[入力バッファー]
[なし] :
入力バッファーの長さ
[なし] :
出力バッファー
ドライバーは、Irp-AssociatedIrp.SystemBuffer> のバッファー内のDISK_GEOMETRY_EX データを返します。 出力バッファーのサイズは、入力バッファーと同じサイズにすることはできません。
出力バッファーの長さ
IRP の I/O スタック位置の Parameters.DeviceIoControl.OutputBufferLength は、バッファーのサイズ (バイト単位) を示します。バッファーのサイズは、少なくとも (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER))、最大 (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO)) である必要があります。
ステータス ブロック
[情報] フィールドは、返されたデータのサイズ (バイト単位) に設定されます。
[状態] フィールドは、次のいずれかの値を返します。
- STATUS_SUCCESS
- STATUS_UNRECOGNIZED_MEDIA
- STATUS_INVALID_PARAMETER
- STATUS_INVALID_DEVICE_REQUEST
- STATUS_INFO_LENGTH_MISMATCH
- STATUS_INSUFFICIENT_RESOURCES
- STATUS_BUFFER_TOO_SMALL
注釈
この IOCTL にはディスク パーティション情報が含まれているので、Partmgr.sys 上の呼び出し元のみがこの IOCTL を呼び出すことができます。
この IOCTL では 、IOCTL_DISK_GET_DRIVE_GEOMETRY を使用して DISK_GEOMETRY 構造体を取得し、 GET_LENGTH_INFORMATION 構造体を取得するための IOCTL_DISK_GET_LENGTH_INFO を使用します。 これらの IOCTL はどちらも、disk.sys レベルで使用するためにサポートされています。
要件
要件 | 値 |
---|---|
Header | ntdddisk.h (Ntdddisk.h を含む) |