Freigeben über


DISK_GEOMETRY_EX Struktur (ntdddisk.h)

Die DISK_GEOMETRY_EX Struktur ist eine beliebige Struktur, die aus einer DISK_GEOMETRY Struktur besteht, gefolgt von einer DISK_PARTITION_INFO Struktur, gefolgt von einer DISK_DETECTION_INFO Struktur.

Syntax

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

Angehörige

Geometry

Eine Beschreibung dieses Mitglieds finden Sie unter DISK_GEOMETRY.

DiskSize

Enthält die Größe in Byte des Datenträgers.

Data[1]

Beginn des Datenblocks, beginnend mit einer DISK_PARTITION_INFO Struktur gefolgt von einer DISK_DETECTION_INFO Struktur.

Bemerkungen

DISK_GEOMETRY_EX wird in Verbindung mit dem IOCTL_DISK_GET_DRIVE_GEOMETRY_EX und den IOCTL_DISK_GET_MEDIA_TYPES IOCTLs verwendet, um Informationen über die Geometrie eines physischen Datenträgers abzurufen (Medientyp, Anzahl der Zylinder, Spuren pro Zylinder, Sektoren pro Spur und Bytes pro Sektor).

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, Ntdddisk.h)

Siehe auch

DISK_DETECTION_INFO

DISK_GEOMETRY

DISK_PARTITION_INFO

IOCTL_DISK_GET_DRIVE_GEOMETRY

IOCTL_DISK_GET_MEDIA_TYPES