struktur DISK_GEOMETRY_EX (ntdddisk.h)
Struktur DISK_GEOMETRY_EX adalah struktur panjang arbitrer yang terdiri dari struktur DISK_GEOMETRY diikuti oleh struktur DISK_PARTITION_INFO diikuti, pada gilirannya, dengan struktur DISK_DETECTION_INFO .
Sintaks
typedef struct _DISK_GEOMETRY_EX {
DISK_GEOMETRY Geometry;
LARGE_INTEGER DiskSize;
UCHAR Data[1];
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
Anggota
Geometry
Lihat DISK_GEOMETRY untuk deskripsi anggota ini.
DiskSize
Berisi ukuran dalam byte disk.
Data[1]
Awal blok data, dimulai dengan struktur DISK_PARTITION_INFO diikuti dengan struktur DISK_DETECTION_INFO .
Keterangan
DISK_GEOMETRY_EX digunakan bersama dengan IOCTL_DISK_GET_DRIVE_GEOMETRY_EX dan IOCTL IOCTL_DISK_GET_MEDIA_TYPES , untuk mengambil informasi tentang geometri disk fisik (jenis media, jumlah silinder, trek per silinder, sektor per trek, dan byte per sektor).
Karena informasi partisi dan deteksi tidak berada di lokasi tetap dalam struktur DISK_GEOMETRY_EX, ntdddisk.h menyediakan dua makro untuk mengakses informasi ini. Kedua makro mengambil penunjuk ke struktur jenis DISK_GEOMETRY_EX sebagai argumen:
#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
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntdddisk.h (termasuk Ntdddisk.h, Ntddk.h, Ntdddisk.h) |