Condividi tramite


USB_PORT_CONNECTOR_PROPERTIES struttura (usbioctl.h)

La struttura USB_PORT_CONNECTOR_PROPERTIES viene usata con la richiesta di controllo I/O di IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES per recuperare informazioni su una porta in un particolare hub SuperSpeed.

Sintassi

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;

Members

ConnectionIndex

Numero di porta sottoposto a query nella richiesta. ConnectionIndex viene specificato dal chiamante. Se nell'hub SuperSpeed sono presenti n porte, le porte vengono numerate da 1 a n. Per ottenere il numero di porte, il chiamante invia prima un IOCTL_USB_GET_HUB_INFORMATION_EX richiesta di controllo I/O. La richiesta recupera il numero di porta più alto nell'hub.

ActualLength

Numero di byte necessari per contenere l'intera struttura USB_PORT_CONNECTOR_PROPERTIES inclusa la stringa contenente il nome simbolico del collegamento dell'hub complementare. Tale stringa viene archiviata nel membro CompanionHubSymbolicLinkName . Il valore ActualLength viene restituito dalla richiesta di IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES e utilizzata dal chiamante per allocare un buffer per contenere le informazioni ricevute. Per informazioni dettagliate, vedere IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES.

UsbPortProperties

Proprietà della porta. Al termine della richiesta di IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES , UsbPortProperties contiene un OR bit per bit di uno o più flag che indicano le proprietà e le funzionalità della porta. I flag sono definiti in USB_PORT_PROPERTIES.

CompanionIndex

Indice della porta complementare associata alla porta sottoposta a query (specificata da ConnectionIndex). Se sono presenti n porte complementari, tali porte vengono indicizzate da 0 a n-1.

Se viene eseguito il mapping di una porta a più porte complementari, CompanionIndex viene incrementato in più query per enumerare tutte le porte complementari.

Per gli hub SuperSpeed e i controller xHCI, CompanionIndex è sempre 0. Per altre informazioni, vedere la sezione Osservazioni.

CompanionPortNumber

Numero di porta della porta complementare specificata da CompanionIndex. Se la porta sottoposta a query condivide un connettore USB con una porta in un altro hub, CompanionPortNumber indica il numero di porta della porta nell'altro hub.

Nota Per l'hub radice di un controller xHCI, la porta condivisa potrebbe trovarsi nello stesso hub.
 

CompanionHubSymbolicLinkName[1]

Stringa Unicode contenente il collegamento simbolico dell'hub complementare che condivide il connettore USB. Se esiste un hub complementare, CompanionPortNumber è diverso da zero. In caso contrario, CompanionHubSymbolicLinkName [0] è NULL.

Commenti

Un hub SuperSpeed 3.0 contiene due implementazioni di hub indipendenti. Uno è per i dispositivi USB 2.0 e l'implementazione dell'hub è simile agli hub 2.0 esistenti. L'altro hub è solo per i dispositivi SuperSpeed. Poiché il segnale del bus USB 2.0 e 3.0 è indipendente in modo elettrico, entrambi gli hub funzionano simultaneamente. Pertanto, quando un hub SuperSpeed è connesso all'host, Windows enumera in modo indipendente i due hub; un hub è associato a una porta USB 2.0 e l'altro hub con una porta USB 3.0. Ogni hub ha le porte downstream e upstream. I connettori fisici USB sono condivisi tra porte associate a queste due implementazioni hub.

Analogamente, un controller xHCI deve essere in grado di gestire SuperSpeed, alta velocità, full-speed e dispositivi a bassa velocità. La specifica USB 3.0 richiede un controller xHCI per contenere due unità di esecuzione indipendenti ognuna per la velocità del bus USB 3.0 e USB 2.0. L'unità di esecuzione USB 3.0 gestisce il traffico SuperSpeed sul bus. L'unità di esecuzione USB 2.0 deve gestire traffico basso, pieno e ad alta velocità. Tale requisito può essere soddisfatto in molti modi. Ad esempio, in un'implementazione, l'unità di esecuzione USB 2.0 può avere un'unità di esecuzione USB 1.1 downstream o un hub USB 2.0 downstream. L'altra unità di esecuzione gestisce il traffico SuperSpeed sul bus. Ad esempio, in un'implementazione, il controller xHCI può avere un hub USB 2.0 downstream (anziché un controller host USB 2.0) con un traduttore delle transazioni per gestire il traffico a velocità completa e bassa velocità. Tale hub downstream condivide i connettori con le porte dell'hub radice SuperSpeed.

Nei casi in cui i connettori USB vengono condivisi, la porta che viene eseguita una query tramite la richiesta di controllo I/O IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES viene specificata da ConnectionIndex e la porta che condivide il connettore viene chiamata porta complementare. Al termine della richiesta, è possibile usare i membri CompanionIndex, CompanionPortNumber e CompanionHubSymbolicLinkName di USB_PORT_CONNECTOR_PROPERTIES per determinare il routing delle porte in questi casi.

Se più di una porta complementare è associata alla porta eseguita una query, l'applicazione può ottenere informazioni su tutte le porte complementari inviando la richiesta di controllo I/O di IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES in un ciclo e incrementando il valore CompanionIndex in ogni iterazione. Quando tutte le porte sono state enumerate e non esiste alcuna porta associata all'indice specificato in CompanionIndex, la richiesta viene completata correttamente, CompanionPortNumber è impostata su 0 e CompanionHubSymbolicLinkName è NULL.

Per ottenere informazioni sulla velocità operativa di un dispositivo collegato a una determinata porta, l'applicazione può inviare la richiesta di controllo I/O IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 .

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Server minimo supportato Nessuno supportato
Intestazione usbioctl.h (include Usbioctl.h)

Vedi anche

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