IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
Devuelve información sobre la geometría del disco físico (tipo de medio, número de cilindros, pistas por cilindro, sectores por pista y bytes por sector).
La diferencia entre IOCTL_DISK_GET_DRIVE_GEOMETRY_EX y la solicitud de IOCTL_DISK_GET_DRIVE_GEOMETRY anterior es que IOCTL_DISK_GET_DRIVE_GEOMETRY_EX puede recuperar información del registro de arranque maestro (MBR) y del medio con particiones GUID (GPT), mientras que IOCTL_DISK_GET_DRIVE_GEOMETRY solo puede leer medios de estilo MBR.
Código principal
Búfer de entrada
Ninguno.
Longitud del búfer de entrada
Ninguno.
Búfer de salida
El controlador devuelve los datos DISK_GEOMETRY_EX en el búfer en Irp-AssociatedIrp.SystemBuffer>. Es posible que el tamaño del búfer de salida no tenga el mismo tamaño que el búfer de entrada.
Longitud del búfer de salida
Parameters.DeviceIoControl.OutputBufferLength en la ubicación de la pila de E/S del IRP indica el tamaño, en bytes, del búfer, que debe ser al menos (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER)) y hasta (sizeof(DISK_GEOMETRY) + sizeof(LARGE_INTEGER) + sizeof(DISK_PARTITION_INFO) + sizeof(DISK_DETECTION_INFO)).
Bloque de estado
El campo Información se establece en el tamaño, en bytes, de los datos devueltos.
El campo Estado devuelve uno de los siguientes valores:
- STATUS_SUCCESS
- STATUS_UNRECOGNIZED_MEDIA
- STATUS_INVALID_PARAMETER
- STATUS_INVALID_DEVICE_REQUEST
- STATUS_INFO_LENGTH_MISMATCH
- STATUS_INSUFFICIENT_RESOURCES
- STATUS_BUFFER_TOO_SMALL
Comentarios
Solo los autores de llamadas anteriores Partmgr.sys pueden llamar a este IOCTL, ya que contiene información de partición de disco.
Este IOCTL usa IOCTL_DISK_GET_DRIVE_GEOMETRY para obtener la estructura de DISK_GEOMETRY y IOCTL_DISK_GET_LENGTH_INFO para obtener la estructura de GET_LENGTH_INFORMATION . Ambos IOCTL se admiten para su uso en el nivel de disk.sys.
Requisitos
Requisito | Valor |
---|---|
Header | ntdddisk.h (include Ntdddisk.h) |