DISK_GEOMETRY_EX 結構 (ntdddisk.h)
DISK_GEOMETRY_EX 結構是由 DISK_GEOMETRY 結構所組成的任意長度結構,後面接著 DISK_PARTITION_INFO 結構,接著接著 DISK_DETECTION_INFO 結構。
語法
typedef struct _DISK_GEOMETRY_EX {
DISK_GEOMETRY Geometry;
LARGE_INTEGER DiskSize;
UCHAR Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
成員
Geometry
如需此成員的描述 ,請參閱DISK_GEOMETRY 。
DiskSize
包含磁碟的大小,以位元組為單位。
Data[1]
數據區塊的開頭,從 DISK_PARTITION_INFO 結構開始,後面接著 DISK_DETECTION_INFO 結構。
備註
DISK_GEOMETRY_EX會與 IOCTL_DISK_GET_DRIVE_GEOMETRY_EX 和 IOCTL_DISK_GET_MEDIA_TYPES IOCTL 搭配使用,以擷取實體磁碟 (媒體類型、圓柱數、每條曲目追蹤、每個曲目扇區扇區,以及每個扇區) 位元組的相關信息。
因為數據分割和偵測資訊不在DISK_GEOMETRY_EX結構內的固定位置, 所以 ntdddisk.h 提供兩個宏來存取這項資訊。 這兩個宏都會以DISK_GEOMETRY_EX類型的結構做為自變數的指標:
#if (NTDDI_VERSION < NTDDI_WS03)
#define DiskGeometryGetPartition(Geometry)\
((PDISK_PARTITION_INFO)((Geometry)+1))
#define DiskGeometryGetDetect(Geometry)\
((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry)+\
DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
#else
#define DiskGeometryGetPartition(Geometry)\
((PDISK_PARTITION_INFO)((Geometry)->Data))
#define DiskGeometryGetDetect(Geometry)\
((PDISK_DETECTION_INFO)(((ULONG_PTR)DiskGeometryGetPartition(Geometry)+\
DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
#endif
規格需求
需求 | 值 |
---|---|
標頭 | ntdddisk.h (包含 Ntdddisk.h、Ntddk.h、Ntdddisk.h) |