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-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) |