次の方法で共有


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 スタイルのメディアのみを読み取ることができる点です。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

何一つ。

入力バッファーの長さ

何一つ。

出力バッファー

ドライバーは、バッファー内の 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 を含む)