Share via


IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

Una aplicación envía la solicitud de control de E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 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 concentrador universal de bus serie (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 llamador 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 establecido en 0 e incremente el valor CompanionIndex en cada iteración hasta que la solicitud se complete con CompanionPortNumber establecido en 0 y CompanionHubSymbolicLinkName sea 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, a la que apunta 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 en la condición de error adecuada, como STATUS_INVALID_PARAMETER o STATUS_INSUFFICIENT_RESOURCES. Si el centro no se ha iniciado o no es funcional, la solicitud devuelve STATUS_UNSUCCESSFUL.

Comentarios

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 de vínculo simbólico de un concentrador complementario, si este 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). Una vez completada correctamente, 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.

Según el valor ActualLength , el autor de la llamada puede asignar un búfer y volver a enviar 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 miembro CompanionHubSymbolicLinkName es una cadena Unicode que contiene el nombre de vínculo simbólico del concentrador complementario.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible No se admite ninguno
Encabezado usbioctl.h (incluya Usbioctl.h)

Consulte también

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES