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 aus partitionierten Medien vom Typ "Master Boot Record" (MBR) und "GUID Partition Table" (GPT) abrufen können, während IOCTL_DISK_GET_DRIVE_GEOMETRY nur Medien im MBR-Stil lesen können.
Hauptcode
Eingabepuffer
Keine.
Eingabepufferlänge
Keine.
Ausgabepuffer
Der Treiber gibt die DISK_GEOMETRY_EX Daten im Puffer bei Irp-AssociatedIrp.SystemBuffer> zurück. Die Größe des Ausgabepuffers entspricht möglicherweise nicht der Größe des Eingabepuffers.
Länge des Ausgabepuffers
Parameters.DeviceIoControl.OutputBufferLength in der E/A-Stapelposition des IRP gibt die Größe des Puffers in Bytes an, die mindestens (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER)) und bis zu (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO)) sein muss.
Statusblock
Das Feld Information ist 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
Hinweise
Nur Aufrufer oberhalb Partmgr.sys können diese IOCTL aufrufen, da sie Informationen zur Datenträgerpartition enthält.
Dieses 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 abzurufen. Beide IOCTL's werden für die Verwendung auf disk.sys-Ebene unterstützt.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntdddisk.h (include Ntdddisk.h) |