Partager via


structure DISK_GEOMETRY_EX (ntdddisk.h)

La structure DISK_GEOMETRY_EX est une structure 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 IOCTLs, 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 dans 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 en tant qu’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

Exigences

Exigence Valeur
d’en-tête ntdddisk.h (include 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