IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL (ntdddisk.h)
Devuelve información sobre la geometría del disco físico (tipo multimedia, 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 tanto del registro de arranque maestro (MBR) como de la tabla de 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 de DISK_GEOMETRY_EX en el búfer en Irp->AssociatedIrp.SystemBuffer. El tamaño del búfer de salida puede no tener 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 de 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
Observaciones
Solo los autores de llamadas anteriores a 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 |
---|---|
encabezado de | ntdddisk.h (incluya Ntdddisk.h) |