共用方式為


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

另請參閱

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES