IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
Gibt Informationen zur Geometrie des physischen Datenträgers zurück (Medientyp, Anzahl der Zylinder, Spuren pro Zylinder, Sektoren pro Spur und Bytes pro Sektor).
Der Unterschied zwischen IOCTL_DISK_GET_DRIVE_GEOMETRY_EX und der älteren IOCTL_DISK_GET_DRIVE_GEOMETRY Anforderung besteht darin, dass IOCTL_DISK_GET_DRIVE_GEOMETRY_EX Informationen sowohl aus dem Master Boot Record (MBR) als auch aus dem partitionierten GUID-Partitionstabelle (GPT)-Typ abrufen können, während IOCTL_DISK_GET_DRIVE_GEOMETRY nur MBR-Medien lesen können.
Hauptcode
Eingabepuffer
Nichts.
Eingabepufferlänge
Nichts.
Ausgabepuffer
Der Treiber gibt die DISK_GEOMETRY_EX Daten im Puffer bei Irp->AssociatedIrp.SystemBufferzurück. Die Größe des Ausgabepuffers entspricht möglicherweise nicht der Größe des Eingabepuffers.
Länge des Ausgabepuffers
Parameters.DeviceIoControl.OutputBufferLength an der I/O-Stapelposition des IRP gibt die Größe in Bytes an, des Puffers, der mindestens (Größe von(DISK_GEOMETRY) + Größe der(LARGE_INTEGER) sein muss )) und bis zu (Größe von(DISK_GEOMETRY) + Größe(LARGE_INTEGER) + Größe von(DISK_PARTITION_INFO) + Größe des(DISK_DETECTION_INFO)).
Statusblock
Das Feld Information wird auf die Größe der zurückgegebenen Daten in Bytes festgelegt.
Das feld Status gibt einen der folgenden Werte zurück:
- STATUS_SUCCESS
- STATUS_UNRECOGNIZED_MEDIA
- STATUS_INVALID_PARAMETER
- STATUS_INVALID_DEVICE_REQUEST
- STATUS_INFO_LENGTH_MISMATCH
- STATUS_INSUFFICIENT_RESOURCES
- STATUS_BUFFER_TOO_SMALL
Bemerkungen
Nur Aufrufer über Partmgr.sys können diese IOCTL aufrufen, da sie Datenträgerpartitionsinformationen enthält.
Diese IOCTL verwendet IOCTL_DISK_GET_DRIVE_GEOMETRY, um die DISK_GEOMETRY Struktur abzurufen und IOCTL_DISK_GET_LENGTH_INFO, um die GET_LENGTH_INFORMATION Struktur zu erhalten. Beide IOCTL-Versionen werden für die Verwendung auf disk.sys-Ebene unterstützt.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntdddisk.h (include Ntdddisk.h) |