Condividi tramite


IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

La richiesta di controllo I /O IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES viene inviata da un'applicazione per recuperare informazioni su una porta specifica in un hub USB.

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES è una richiesta di controllo I/O in modalità utente. Questa richiesta è destinata al dispositivo hub USB (Universal Serial Bus) (GUID_DEVINTERFACE_USB_HUB).

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

AssociateIrp.SystemBuffer punta a una struttura di USB_PORT_CONNECTOR_PROPERTIES allocata dal chiamante. Il chiamante deve impostare i membri della struttura come indicato di seguito:

  • Il chiamante deve specificare il numero di porta della porta sottoposta a query nel membro ConnectionIndex . ConnectionIndex deve essere un valore nell'intervallo da 1 a n, dove n è il numero di porta più alto recuperato in una richiesta di controllo di I /O precedente IOCTL_USB_GET_HUB_INFORMATION_EX.
  • Il chiamante deve specificare il membro CompanionIndex . Per un hub SuperSpeed, il chiamante deve impostare il membro CompanionIndex su 0.

    Il chiamante può usare CompanionIndex per ottenere i numeri di porta associati alla porta sottoposta a query. Se più di una porta complementare è associata alla porta, per ottenere tutti i numeri di porta, l'applicazione può inviare la richiesta in un ciclo. Iniziare con CompanionIndex impostato su 0 e aumentare il valore CompanionIndex in ogni iterazione fino al completamento della richiesta con CompanionPortNumber impostato su 0 e CompanionHubSymbolicLinkName è NULL.

Lunghezza del buffer di input

Il membro Parameters.DeviceIoControl.InputBufferLength indica le dimensioni, in byte, del buffer allocato del chiamante a cui punta AssociateIrp.SystemBuffer. Per altre informazioni, vedere Osservazioni.

Buffer di output

Nell'output, USB_PORT_CONNECTOR_PROPERTIES, puntato da AssociatedIrp.SystemBuffer, viene compilato con informazioni sul connettore fisico associato alla porta.

Lunghezza del buffer di output

Il membro Parameters.DeviceIoControl.OutputBufferLength indica le dimensioni, in byte, del buffer di output SystemBuffer.

Blocco dello stato

Lo stack USB imposta Irp-IoStatus.Status> su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, lo stack USB imposta Stato sulla condizione di errore appropriata, ad esempio STATUS_INVALID_PARAMETER o STATUS_INSUFFICIENT_RESOURCES. Se l'hub non è stato avviato o non è funzionale, la richiesta restituisce STATUS_UNSUCCESSFUL.

Commenti

Il chiamante deve fornire un buffer sufficiente per contenere una struttura USB_PORT_CONNECTOR_PROPERTIES e il nome simbolico del collegamento di un hub complementare, se tale hub è associato alla porta specificata. Per ottenere le dimensioni del buffer da allocare, il chiamante deve inviare una richiesta di IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES . Nella richiesta, AssociateIrp.SystemBuffer deve essere una struttura USB_PORT_CONNECTOR_PROPERTIES allocata dal chiamante e parametri.DeviceIoControl.InputBufferLength deve essere sizeof(USB_PORT_CONNECTOR_PROPERTIES). Al termine del completamento, il membro ActualLength di USB_PORT_CONNECTOR_PROPERTIES indica la dimensione effettiva del buffer. Se esiste un nome di collegamento simbolico, il valore ricevuto include le dimensioni della stringa che archivia il nome del collegamento.

In base al valore ActualLength , il chiamante può quindi allocare un buffer e inviare nuovamente la richiesta di IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES . Al termine della richiesta, il buffer viene riempito con informazioni sulla porta e il membro CompanionHubSymbolicLinkName è una stringa Unicode che contiene il nome di collegamento simbolico dell'hub complementare.

Requisiti

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

Vedi anche

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES