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_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

ドライバーは、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 を含む)