Compartir a través de


IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

Una aplicación envía la IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES solicitud de control de E/S para recuperar información sobre un puerto específico en un concentrador USB.

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES es una solicitud de control de E/S en modo de usuario. Esta solicitud tiene como destino el dispositivo del concentrador de bus serie universal (USB) (GUID_DEVINTERFACE_USB_HUB).

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

AssociatedIrp.SystemBuffer apunta a una estructura de USB_PORT_CONNECTOR_PROPERTIES asignada por el autor de la llamada. El autor de la llamada debe establecer los miembros de la estructura de la siguiente manera:

  • El autor de la llamada debe especificar el número de puerto del puerto que se consulta en el miembro ConnectionIndex. connectionIndex debe ser un valor del intervalo de 1 a n, donde n es el número de puerto más alto recuperado en una solicitud de control de E/S de IOCTL_USB_GET_HUB_INFORMATION_EX anterior.
  • El autor de la llamada debe especificar el miembro CompanionIndex. Para un centro de SuperSpeed, el autor de la llamada debe establecer el miembro CompanionIndex en 0.

    El autor de la llamada puede usar companionIndex para obtener los números de puerto asociados al puerto que se consulta. Si hay más de un puerto complementario asociado al puerto, para obtener todos los números de puerto, la aplicación puede enviar la solicitud en un bucle. Comience con CompanionIndex establezca en 0 e incremente el valor de CompanionIndex en cada iteración hasta que la solicitud se complete con CompanionPortNumber establecido en 0 y CompanionHubSymbolicLinkName es NULL.

Longitud del búfer de entrada

El miembro Parameters.DeviceIoControl.InputBufferLength indica el tamaño, en bytes, del búfer asignado por el llamador al que apunta AssociatedIrp.SystemBuffer. Para obtener más información, vea Comentarios.

Búfer de salida

En la salida, USB_PORT_CONNECTOR_PROPERTIES, apuntado por AssociatedIrp.SystemBuffer, se rellena con información sobre el conector físico asociado al puerto.

Longitud del búfer de salida

El miembro Parameters.DeviceIoControl.OutputBufferLength indica el tamaño, en bytes, del búfer de salida SystemBuffer.

Bloque de estado

La pila USB establece Irp->IoStatus.Status en STATUS_SUCCESS si la solicitud se realiza correctamente. De lo contrario, la pila USB establece Estado a la condición de error adecuada, como STATUS_INVALID_PARAMETER o STATUS_INSUFFICIENT_RESOURCES. Si el centro no se ha iniciado o no funciona, la solicitud devuelve STATUS_UNSUCCESSFUL.

Observaciones

El autor de la llamada debe proporcionar un búfer lo suficientemente grande como para contener una estructura de USB_PORT_CONNECTOR_PROPERTIES y el nombre simbólico del vínculo de un centro complementario, si dicho concentrador está asociado al puerto especificado. Para obtener el tamaño del búfer que se va a asignar, el autor de la llamada debe enviar una solicitud de IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES. En la solicitud, AssociatedIrp.SystemBuffer debe ser una estructura de USB_PORT_CONNECTOR_PROPERTIES asignada por el autor de la llamada y Parameters.DeviceIoControl.InputBufferLength debe ser sizeof(USB_PORT_CONNECTOR_PROPERTIES). Tras la finalización correcta, el miembro ActualLength de USB_PORT_CONNECTOR_PROPERTIES indica el tamaño real del búfer. Si existe un nombre de vínculo simbólico, el valor recibido incluye el tamaño de la cadena que almacena el nombre del vínculo.

En función del valor de ActualLength, el autor de la llamada puede asignar un búfer y enviar de nuevo la solicitud IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES. Una vez completada la solicitud, el búfer se rellena con información de puerto y el CompanionHubSymbolicLinkName miembro es una cadena Unicode que contiene el nombre simbólico del vínculo complementario.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8
servidor mínimo admitido No se admite ninguna
encabezado de usbioctl.h (incluya Usbioctl.h)

Consulte también

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES