estrutura DISK_GEOMETRY_EX (ntdddisk.h)
A estrutura DISK_GEOMETRY_EX é uma estrutura de comprimento arbitrário composta por uma estrutura DISK_GEOMETRY seguida por uma estrutura DISK_PARTITION_INFO seguida, por sua vez, por uma estrutura DISK_DETECTION_INFO .
Sintaxe
typedef struct _DISK_GEOMETRY_EX {
DISK_GEOMETRY Geometry;
LARGE_INTEGER DiskSize;
UCHAR Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
Membros
Geometry
Consulte DISK_GEOMETRY para obter uma descrição desse membro.
DiskSize
Contém o tamanho em bytes do disco.
Data[1]
Início do bloco de dados, começando com uma estrutura DISK_PARTITION_INFO seguida por uma estrutura DISK_DETECTION_INFO .
Comentários
DISK_GEOMETRY_EX é usado em conjunto com o IOCTL_DISK_GET_DRIVE_GEOMETRY_EX e o IOCTL_DISK_GET_MEDIA_TYPES IOCTLs, a fim de recuperar informações sobre a geometria de um disco físico (tipo de mídia, número de cilindros, faixas por cilindro, setores por faixa e bytes por setor).
Como as informações de partição e detecção não estão em locais fixos dentro da estrutura DISK_GEOMETRY_EX, ntdddisk.h fornece duas macros para acessar essas informações. Ambas as macros levam um ponteiro para uma estrutura do tipo DISK_GEOMETRY_EX como um 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 |
---|---|
Cabeçalho | ntdddisk.h (incluem Ntdddisk.h, Ntddk.h, Ntdddisk.h) |