Partager via


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)

Voir aussi

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES