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