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

輸入緩衝區

無。

輸入緩衝區長度

無。

輸出緩衝區

驅動程式會在 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

備註

只有上述呼叫端 Partmgr.sys 可能會呼叫這個 IOCTL,因為它包含磁碟分區資訊。

此 IOCTL 會使用 IOCTL_DISK_GET_DRIVE_GEOMETRY 來取得 DISK_GEOMETRY 結構,並 IOCTL_DISK_GET_LENGTH_INFO 取得 GET_LENGTH_INFORMATION 結構。 這兩個IOCTL支援在 disk.sys 層級使用。

規格需求

需求
標頭 ntdddisk.h (包含 Ntdddisk.h)