Compartir a través de


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

IRP_MJ_DEVICE_CONTROL

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)