Freigeben über


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

IRP_MJ_DEVICE_CONTROL

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)