Compartilhar via


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)

Confira também

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES