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