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