Partilhar via


estrutura USB_PORT_CONNECTOR_PROPERTIES (usbioctl.h)

A estrutura USB_PORT_CONNECTOR_PROPERTIES é usada com a solicitação de controle de E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES para recuperar informações sobre uma porta em um hub SuperSpeed específico.

Sintaxe

typedef struct _USB_PORT_CONNECTOR_PROPERTIES {
  ULONG               ConnectionIndex;
  ULONG               ActualLength;
  USB_PORT_PROPERTIES UsbPortProperties;
  USHORT              CompanionIndex;
  USHORT              CompanionPortNumber;
  WCHAR               CompanionHubSymbolicLinkName[1];
} USB_PORT_CONNECTOR_PROPERTIES, *PUSB_PORT_CONNECTOR_PROPERTIES;

Membros

ConnectionIndex

O número da porta que está sendo consultado na solicitação. ConnectionIndex é especificado pelo chamador. Se houver n portas no hub SuperSpeed, as portas serão numeradas de 1 a n. Para obter o número de portas, o chamador primeiro envia uma solicitação de controle de E/S IOCTL_USB_GET_HUB_INFORMATION_EX. A solicitação recupera o número de porta mais alto no hub.

ActualLength

O número de bytes necessários para manter toda a estrutura USB_PORT_CONNECTOR_PROPERTIES, incluindo a cadeia de caracteres que contém o nome de link simbólico do hub complementar. Essa cadeia de caracteres é armazenada no membro CompanionHubSymbolicLinkName. O valor ActualLength é retornado pela solicitação IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES e usado pelo chamador para alocar um buffer para armazenar as informações recebidas. Para obter detalhes, consulte IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES.

UsbPortProperties

As propriedades da porta. Após a conclusão da solicitação de IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES, UsbPortProperties contém um OR bit a bit ou de um ou mais sinalizadores indicando as propriedades e os recursos da porta. Os sinalizadores são definidos em USB_PORT_PROPERTIES.

CompanionIndex

O índice da porta complementar associada à porta que está sendo consultada (especificada por ConnectionIndex). Se houver n portas complementares, essas portas serão indexadas de 0 a n–1.

Se uma porta for mapeada para mais de uma porta complementar, CompanionIndex será incrementado em várias consultas para enumerar todas as portas complementares.

Para hubs SuperSpeed e controladores xHCI, CompanionIndex é sempre 0. Para obter mais informações, consulte Comentários.

CompanionPortNumber

O número da porta complementar fornecida por CompanionIndex. Se a porta que está sendo consultada compartilhar um conector USB com uma porta em outro hub, CompanionPortNumber indicará o número da porta no outro hub.

Observação Para o hub raiz de um controlador xHCI, a porta compartilhada pode estar no mesmo hub.
 

CompanionHubSymbolicLinkName[1]

A cadeia de caracteres Unicode que contém o link simbólico do hub complementar que compartilha o conector USB. Se houver um hub complementar, CompanionPortNumber não será zero. Caso contrário, CompanionHubSymbolicLinkName [0] é NULL.

Observações

Um hub SuperSpeed 3.0 contém duas implementações de hub independentes. Uma delas é para dispositivos USB 2.0 e a implementação do hub é semelhante aos hubs 2.0 existentes. O outro hub é apenas para dispositivos SuperSpeed. Como a sinalização de ônibus USB 2.0 e 3.0 é eletricamente independente, ambos os hubs operam simultaneamente. Portanto, quando um hub SuperSpeed é conectado ao host, o Windows enumera os dois hubs de forma independente; um hub está associado a uma porta USB 2.0 e ao outro hub com uma porta USB 3.0. Cada hub tem suas portas downstream e upstream. Conectores físicos USB são compartilhados entre portas associadas a essas duas implementações de hub.

Da mesma forma, um controlador xHCI deve ser capaz de lidar com dispositivos SuperSpeed, de alta velocidade, de velocidade total e de baixa velocidade. A especificação USB 3.0 requer um controlador xHCI para conter duas unidades de execução independentes cada para as velocidades de barramento USB 3.0 e USB 2.0. A unidade de execução USB 3.0 manipula o tráfego SuperSpeed no ônibus. A unidade de execução USB 2.0 deve lidar com tráfego baixo, completo e de alta velocidade. Esse requisito pode ser atendido de várias maneiras. Por exemplo, em uma implementação, a unidade de execução USB 2.0 pode ter uma unidade de execução USB 1.1 downstream ou um hub USB 2.0 downstream. A outra unidade de execução lida com o tráfego SuperSpeed no ônibus. Por exemplo, em uma implementação, o controlador xHCI pode ter um hub USB 2.0 downstream (em vez de um controlador de host USB 2.0) com um tradutor de transações para lidar com tráfego de velocidade total e baixa velocidade. Esse hub downstream compartilha conectores com as portas do hub raiz SuperSpeed.

Nos casos em que os conectores USB são compartilhados, a porta que está sendo consultada por meio da solicitação de controle de E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES é especificada por ConnectionIndex e a porta que compartilha o conector é chamada de porta complementar . Após a conclusão da solicitação, o CompanionIndex, CompanionPortNumbere CompanionHubSymbolicLinkName membros de USB_PORT_CONNECTOR_PROPERTIES podem ser usados para determinar o roteamento de porta nesses casos.

Se mais de uma porta complementar estiver associada à porta que está sendo consultada, o aplicativo poderá obter informações sobre todas as portas complementares enviando a solicitação de controle de E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES em um loop e incrementando o valor CompanionIndex em cada iteração. Quando todas as portas foram enumeradas e não há nenhuma porta associada ao índice especificado em CompanionIndex, a solicitação é concluída com êxito, CompanionPortNumber é definido como 0 e CompanionHubSymbolicLinkName é NULL.

Para obter informações sobre a velocidade operacional de um dispositivo anexado a uma porta específica, o aplicativo pode enviar o IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 solicitação de controle de E/S.

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)

Consulte também

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES

USB_PORT_PROPERTIES