struktur USB_PORT_CONNECTOR_PROPERTIES (usbioctl.h)

Struktur USB_PORT_CONNECTOR_PROPERTIES digunakan dengan permintaan kontrol I/O IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES untuk mengambil informasi tentang port pada hub SuperSpeed tertentu.

Sintaks

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;

Anggota

ConnectionIndex

Nomor port sedang dikueri dalam permintaan. ConnectionIndex ditentukan oleh pemanggil. Jika ada n port di hub SuperSpeed, port diberi nomor dari 1 hingga n. Untuk mendapatkan jumlah port, pemanggil terlebih dahulu mengirim permintaan kontrol I/O IOCTL_USB_GET_HUB_INFORMATION_EX . Permintaan mengambil nomor port tertinggi di hub.

ActualLength

Jumlah byte yang diperlukan untuk menahan seluruh struktur USB_PORT_CONNECTOR_PROPERTIES termasuk string yang berisi nama tautan simbolis hub pendamping. String tersebut disimpan di anggota CompanionHubSymbolicLinkName . Nilai ActualLength dikembalikan oleh permintaan IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES dan digunakan oleh pemanggil untuk mengalokasikan buffer untuk menyimpan informasi yang diterima. Untuk detailnya, lihat IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES.

UsbPortProperties

Properti port. Setelah menyelesaikan permintaan IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES , UsbPortProperties berisi bitwise ATAU dari satu atau beberapa bendera yang menunjukkan properti dan kemampuan port. Bendera ditentukan dalam USB_PORT_PROPERTIES.

CompanionIndex

Indeks port pendamping yang terkait dengan port yang sedang dikueri (ditentukan oleh ConnectionIndex). Jika ada n port pendamping, port tersebut diindeks dari 0 hingga n–1.

Jika port dipetakan ke lebih dari satu port pendamping, CompanionIndex ditahapkan pada beberapa kueri untuk menghitung semua port pendamping.

Untuk hub SuperSpeed dan pengontrol xHCI, CompanionIndex selalu 0. Untuk informasi selengkapnya, lihat Keterangan.

CompanionPortNumber

Nomor port port pendamping yang diberikan oleh CompanionIndex. Jika port yang dikueri berbagi konektor USB dengan port di hub lain, CompanionPortNumber menunjukkan nomor port port di hub lain.

Catatan Untuk hub akar pengontrol xHCI, port bersama mungkin berada di hub yang sama.
 

CompanionHubSymbolicLinkName[1]

String Unicode yang berisi tautan simbolis hub pendamping yang berbagi konektor USB. Jika hub pendamping ada, CompanionPortNumber bukan nol. Jika tidak, CompanionHubSymbolicLinkName [0] adalah NULL.

Keterangan

Hub SuperSpeed 3.0 berisi dua implementasi hub independen. Salah satunya adalah untuk perangkat USB 2.0, dan implementasi hub mirip dengan hub 2.0 yang ada. Hub lainnya hanya untuk perangkat SuperSpeed. Karena sinyal bus USB 2.0 dan 3.0 independen secara listrik, kedua hub tersebut beroperasi secara bersamaan. Oleh karena itu, ketika hub SuperSpeed terhubung ke host, Windows menghitung dua hub secara independen; satu hub dikaitkan dengan port USB 2.0, dan hub lainnya dengan port USB 3.0. Setiap hub memiliki port hilir dan hulunya. Konektor fisik USB dibagi antara port yang terkait dengan dua implementasi hub tersebut.

Demikian pula, pengontrol xHCI harus dapat menangani perangkat SuperSpeed, berkecepatan tinggi, berkecepatan penuh, dan berkecepatan rendah. Spesifikasi USB 3.0 memerlukan pengontrol xHCI untuk berisi dua unit eksekusi independen masing-masing untuk kecepatan bus USB 3.0 dan USB 2.0. Unit eksekusi USB 3.0 menangani lalu lintas SuperSpeed di bus. Unit eksekusi USB 2.0 harus menangani lalu lintas berkecepatan rendah, penuh, dan tinggi. Persyaratan itu dapat dipenuhi dalam banyak hal. Misalnya, dalam satu implementasi, unit eksekusi USB 2.0 dapat memiliki unit eksekusi USB 1.1 hilir atau hub USB 2.0 hilir. Unit eksekusi lainnya menangani lalu lintas SuperSpeed di bus. Misalnya, dalam satu implementasi, pengontrol xHCI dapat memiliki hub USB 2.0 hilir (bukan pengontrol host USB 2.0) dengan penerjemah transaksi untuk menangani lalu lintas berkecepatan penuh dan berkecepatan rendah. Hub hilir tersebut berbagi konektor dengan port hub akar SuperSpeed.

Dalam kasus di mana konektor USB dibagikan, port yang sedang dikueri melalui permintaan kontrol I/O IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES ditentukan oleh ConnectionIndex, dan port yang berbagi konektor disebut port pendamping. Setelah menyelesaikan permintaan, anggota CompanionIndex, CompanionPortNumber, dan CompanionHubSymbolicLinkNameUSB_PORT_CONNECTOR_PROPERTIES dapat digunakan untuk menentukan perutean port dalam kasus tersebut.

Jika lebih dari satu port pendamping dikaitkan dengan port yang sedang dikueri, aplikasi bisa mendapatkan informasi tentang semua port pendamping dengan mengirim permintaan kontrol I/O IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES dalam perulangan dan meningkatkan nilai CompanionIndex di setiap perulangan. Ketika semua port telah dijumlahkan dan tidak ada port yang terkait dengan indeks yang ditentukan dalam CompanionIndex, permintaan berhasil diselesaikan, CompanionPortNumber diatur ke 0, dan CompanionHubSymbolicLinkName adalah NULL.

Untuk mendapatkan informasi tentang kecepatan pengoperasian perangkat yang terpasang pada port tertentu, aplikasi dapat mengirim permintaan kontrol I/O IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Server minimum yang didukung Tidak ada yang didukung
Header usbioctl.h (termasuk Usbioctl.h)

Lihat juga

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