IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
物理ディスクのジオメトリ (メディアの種類、シリンダー数、シリンダーあたりのトラック数、トラックあたりのセクター数、セクターあたりのバイト数) に関する情報を返します。
IOCTL_DISK_GET_DRIVE_GEOMETRY_EXと以前の IOCTL_DISK_GET_DRIVE_GEOMETRY 要求の違いは、IOCTL_DISK_GET_DRIVE_GEOMETRY_EXはマスター ブート レコード (MBR) と GUID パーティション テーブル (GPT) タイプのパーティション メディアの両方から情報を取得できるのに対し、IOCTL_DISK_GET_DRIVE_GEOMETRYは MBR スタイルのメディアのみを読み取ることができる点です。
メジャー コード
入力バッファー
何一つ。
入力バッファーの長さ
何一つ。
出力バッファー
ドライバーは、バッファー内の DISK_GEOMETRY_EX データ Irp->AssociatedIrp.SystemBufferを返します。 出力バッファーのサイズは、入力バッファーと同じサイズではない可能性があります。
出力バッファーの長さ
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 フィールドは、次のいずれかの値を返します。
- 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 レベルで使用できます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntdddisk.h (Ntdddisk.h を含む) |