DISK_GEOMETRY_EX structure (ntdddisk.h)
La structure DISK_GEOMETRY_EX est une structure de longueur arbitraire composée d’une structure DISK_GEOMETRY suivie d’une structure DISK_PARTITION_INFO suivie, à son tour, d’une structure DISK_DETECTION_INFO .
Syntaxe
typedef struct _DISK_GEOMETRY_EX {
DISK_GEOMETRY Geometry;
LARGE_INTEGER DiskSize;
UCHAR Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
Membres
Geometry
Consultez DISK_GEOMETRY pour obtenir une description de ce membre.
DiskSize
Contient la taille en octets du disque.
Data[1]
Début du bloc de données, en commençant par une structure DISK_PARTITION_INFO suivie d’une structure DISK_DETECTION_INFO .
Remarques
DISK_GEOMETRY_EX est utilisé conjointement avec les IOCTL_DISK_GET_DRIVE_GEOMETRY_EX et les IOCTL_DISK_GET_MEDIA_TYPES IOCTL, afin de récupérer des informations sur la géométrie d’un disque physique (type de média, nombre de cylindres, pistes par cylindre, secteurs par piste et octets par secteur).
Étant donné que les informations de partition et de détection ne se trouvent pas à des emplacements fixes au sein de la structure DISK_GEOMETRY_EX, ntdddisk.h fournit deux macros pour accéder à ces informations. Les deux macros prennent un pointeur vers une structure de type DISK_GEOMETRY_EX comme argument :
#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
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntdddisk.h (inclure Ntdddisk.h, Ntddk.h, Ntdddisk.h) |