struttura DISK_GEOMETRY_EX (ntdddisk.h)

La struttura DISK_GEOMETRY_EX è una struttura a lunghezza arbitraria composta da una struttura DISK_GEOMETRY seguita da una struttura DISK_PARTITION_INFO seguita, a sua volta, da una struttura DISK_DETECTION_INFO .

Sintassi

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

Members

Geometry

Per una descrizione di questo membro , vedere DISK_GEOMETRY .

DiskSize

Contiene le dimensioni in byte del disco.

Data[1]

Inizio del blocco di dati, a partire da una struttura DISK_PARTITION_INFO seguita da una struttura DISK_DETECTION_INFO .

Commenti

DISK_GEOMETRY_EX viene utilizzato insieme ai IOCTL_DISK_GET_DRIVE_GEOMETRY_EXe ai IOCTL_DISK_GET_MEDIA_TYPES IOCTL, per recuperare informazioni sulla geometria di un disco fisico (tipo di supporto, numero di cilindri, tracce per cilindro, settori per traccia e byte per settore).

Poiché le informazioni sulla partizione e sul rilevamento non si trovano in posizioni fisse all'interno della struttura DISK_GEOMETRY_EX, ntdddisk.h fornisce due macro per l'accesso a queste informazioni. Entrambe le macro accettano un puntatore a una struttura di tipo DISK_GEOMETRY_EX come argomento:

#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

Requisiti

Requisito Valore
Intestazione ntdddisk.h (include Ntdddisk.h, Ntddk.h, Ntdddisk.h)

Vedi anche

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES