DISK_GEOMETRY_EX-Struktur (ntdddisk.h)
Die DISK_GEOMETRY_EX-Struktur ist eine Struktur mit beliebiger Länge, die aus einer DISK_GEOMETRY-Struktur gefolgt von einer DISK_PARTITION_INFO-Struktur gefolgt von einer DISK_DETECTION_INFO-Struktur besteht.
Syntax
typedef struct _DISK_GEOMETRY_EX {
DISK_GEOMETRY Geometry;
LARGE_INTEGER DiskSize;
UCHAR Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
Member
Geometry
Eine Beschreibung dieses Elements finden Sie unter DISK_GEOMETRY .
DiskSize
Enthält die Größe des Datenträgers in Bytes.
Data[1]
Beginn des Datenblocks, beginnend mit einer DISK_PARTITION_INFO-Struktur gefolgt von einer DISK_DETECTION_INFO-Struktur .
Hinweise
DISK_GEOMETRY_EX wird in Verbindung mit dem IOCTL_DISK_GET_DRIVE_GEOMETRY_EX und dem IOCTL_DISK_GET_MEDIA_TYPES IOCTLs verwendet, um Informationen über die Geometrie eines physischen Datenträgers (Medientyp, Anzahl der Zylinder, Spuren pro Zylinder, Sektoren pro Spur und Bytes pro Sektor) abzurufen.
Da sich die Partitions- und Erkennungsinformationen nicht an festen Speicherorten innerhalb der DISK_GEOMETRY_EX-Struktur befinden, stellt ntdddisk.h zwei Makros für den Zugriff auf diese Informationen bereit. Beide Makros verwenden einen Zeiger auf eine Struktur vom Typ DISK_GEOMETRY_EX als Argument:
#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
Anforderungen
Anforderung | Wert |
---|---|
Header | ntdddisk.h (include Ntdddisk.h, Ntddk.h, Ntdddisk.h) |