Compartilhar via


IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 IOCTL (usbioctl.h)

O controle de E/S IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 é enviado por um aplicativo para recuperar informações sobre os protocolos compatíveis com uma porta USB específica em um hub. A solicitação também recupera a capacidade de velocidade da porta.

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 é uma solicitação de controle de E/S no modo de usuário. Essa solicitação tem como destino o dispositivo de hub USB (Barramento Serial Universal) (GUID_DEVINTERFACE_USB_HUB).

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

AssociatedIrp.SystemBuffer aponta para uma estrutura de USB_NODE_CONNECTION_INFORMATION_EX_V2 alocada por um chamador.

Na entrada, o chamador deve definir os membros da estrutura da seguinte maneira:

  • O chamador deve especificar o número da porta no membro ConnectionIndex. ConnectionIndex deve ser um valor no intervalo de 1 a n, em que n é o número de porta mais alto recuperado em uma solicitação de controle de E/S IOCTL_USB_GET_HUB_INFORMATION_EX anterior.
  • O chamador deve definir um sinalizador de protocolo no membro do SupportedUsbProtocols (consulte USB_PROTOCOLS). No Windows 8, supportedUsbProtocols.Usb300 deve ser definido como 1. Caso contrário, a solicitação falhará com o código de erro STATUS_INVALID_PARAMETER.
  • O chamador deve definir o membro comprimento para o tamanho, em bytes, do buffer alocado pelo chamador apontado por AssociatedIrp.SystemBuffer. O tamanho do buffer deve ser sizeof (USB_NODE_CONNECTION_INFORMATION_EX_V2).

Comprimento do buffer de entrada

O membro Parameters.DeviceIoControl.InputBufferLength do indica o tamanho, em bytes, do buffer alocado pelo chamador cujo tamanho é igual a sizeof(USB_NODE_CONNECTION_INFORMATION_EX_V2).

Buffer de saída

Na saída, a estrutura de USB_NODE_CONNECTION_INFORMATION_EX_V2 apontada pelo AssociatedIrp.SystemBuffer é preenchida com informações sobre o dispositivo anexado.

Comprimento do buffer de saída

O membro Parameters.DeviceIoControl.OutputBufferLength indica o tamanho, em bytes, do buffer de saída SystemBuffer.

Bloco de status

A pilha USB define Irp->IoStatus.Status para STATUS_SUCCESS se a solicitação for bem-sucedida. Caso contrário, a pilha do driver USB define Status à condição de erro apropriada, como STATUS_INVALID_PARAMETER ou STATUS_INSUFFICIENT_RESOURCES.

Observações

O IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 solicitação consulta o hub da porta especificada para obter informações sobre protocolos compatíveis com a porta e a capacidade de velocidade operacional, se um dispositivo estiver anexado à porta.

Se a solicitação for concluída com êxito, o SupportedUsbProtocols.Usb200 membro do USB_NODE_CONNECTION_INFORMATION_EX_V2 indicará os protocolos compatíveis com a porta. Por exemplo, se a porta der suporte ao protocolo de sinalização definido pela especificação USB 2.0, SupportedUsbProtocols.Usb200 será definido como 1.

Observe que SupportedUsbProtocols.Usb110 está sempre definido como 1 para hubs de alta velocidade e velocidade total. Isso ocorre porque um hub compatível com alta velocidade dá suporte ao protocolo USB 1.1 por meio de transações divididas e tradutores de transações. supportedUsbProtocols.Usb110 nunca é definido como 1 para uma porta USB 3.0.

Além disso, a solicitação também determina se a porta e o dispositivo anexado são capazes de operar no SuperSpeed. Se estiverem, o membro Flags.DeviceIsSuperSpeedCapableOrHigher será definido como 1. Se o dispositivo anexado à porta estiver atualmente operando no SuperSpeed, DeviceIsOperatingAtSuperSpeedOrHigher será definido como 1.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8
servidor com suporte mínimo Nenhum com suporte
cabeçalho usbioctl.h (include Usbioctl.h)