Compartir a través de


estructura DISK_GEOMETRY_EX (ntdddisk.h)

La estructura DISK_GEOMETRY_EX es una estructura de longitud arbitraria compuesta por una estructura de DISK_GEOMETRY seguida de una estructura de DISK_PARTITION_INFO seguida, a su vez, por una estructura DISK_DETECTION_INFO .

Sintaxis

typedef struct _DISK_GEOMETRY_EX {
  DISK_GEOMETRY Geometry;
  LARGE_INTEGER DiskSize;
  UCHAR         Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;

Miembros

Geometry

Consulte DISK_GEOMETRY para obtener una descripción de este miembro.

DiskSize

Contiene el tamaño en bytes del disco.

Data[1]

Principio del bloque de datos, empezando por una estructura de DISK_PARTITION_INFO seguida de una estructura de DISK_DETECTION_INFO .

Comentarios

DISK_GEOMETRY_EX se usa junto con el IOCTL_DISK_GET_DRIVE_GEOMETRY_EX y los IOCTL_DISK_GET_MEDIA_TYPES IOCTLs, con el fin de recuperar información sobre la geometría de un disco físico (tipo de medio, número de cilindros, pistas por cilindro, sectores por pista y bytes por sector).

Dado que la partición y la detección de información no están en ubicaciones fijas dentro de la estructura DISK_GEOMETRY_EX, ntdddisk.h proporciona dos macros para acceder a esta información. Ambas macros toman un puntero a una estructura de tipo DISK_GEOMETRY_EX como argumento:

#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

Requisitos

Requisito Valor
Header ntdddisk.h (incluya Ntdddisk.h, Ntddk.h, Ntdddisk.h)

Consulte también

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES