IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

Permintaan kontrol I/O IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES dikirim oleh aplikasi untuk mengambil informasi tentang port tertentu di hub USB.

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES adalah permintaan kontrol I/O mode pengguna. Permintaan ini menargetkan perangkat hub Universal Serial Bus (USB) (GUID_DEVINTERFACE_USB_HUB).

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

AssociatedIrp.SystemBuffer menunjuk ke struktur USB_PORT_CONNECTOR_PROPERTIES yang dialokasikan pemanggil. Pemanggil harus mengatur anggota struktur sebagai berikut:

  • Pemanggil harus menentukan nomor port port yang sedang dikueri di anggota ConnectionIndex . ConnectionIndex harus berupa nilai dalam rentang 1 hingga n, di mana n adalah nomor port tertinggi yang diambil dalam permintaan kontrol I/O IOCTL_USB_GET_HUB_INFORMATION_EX sebelumnya.
  • Pemanggil harus menentukan anggota CompanionIndex . Untuk hub SuperSpeed, pemanggil harus mengatur anggota CompanionIndex ke 0.

    Pemanggil dapat menggunakan CompanionIndex untuk mendapatkan nomor port yang terkait dengan port yang sedang dikueri. Jika lebih dari satu port pendamping dikaitkan dengan port, untuk mendapatkan semua nomor port, aplikasi dapat mengirim permintaan dalam perulangan. Mulai dengan CompanionIndex diatur ke 0 dan tingkatkan nilai CompanionIndex di setiap perulangan hingga permintaan selesai dengan CompanionPortNumber diatur ke 0 dan CompanionHubSymbolicLinkName adalah NULL.

Panjang buffer input

Anggota Parameters.DeviceIoControl.InputBufferLength menunjukkan ukuran, dalam byte, dari buffer yang dialokasikan pemanggil yang ditunjukkan oleh AssociatedIrp.SystemBuffer. Untuk informasi selengkapnya, lihat Keterangan.

Buffer output

Pada output, USB_PORT_CONNECTOR_PROPERTIES, yang ditujukkan oleh AssociatedIrp.SystemBuffer, diisi dengan informasi tentang konektor fisik yang terkait dengan port.

Panjang buffer output

Anggota Parameters.DeviceIoControl.OutputBufferLength menunjukkan ukuran, dalam byte, dari buffer output SystemBuffer.

Blok status

Tumpukan USB mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS jika permintaan berhasil. Jika tidak, tumpukan USB mengatur Status ke kondisi kesalahan yang sesuai, seperti STATUS_INVALID_PARAMETER atau STATUS_INSUFFICIENT_RESOURCES. Jika hub belum dimulai atau tidak berfungsi, permintaan akan mengembalikan STATUS_UNSUCCESSFUL.

Keterangan

Pemanggil harus menyediakan buffer yang cukup besar untuk menahan struktur USB_PORT_CONNECTOR_PROPERTIES dan nama tautan simbolis hub pendamping, jika hub seperti itu dikaitkan dengan port yang ditentukan. Untuk mendapatkan ukuran buffer yang akan dialokasikan, pemanggil harus mengirim permintaan IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES . Dalam permintaan, AssociatedIrp.SystemBuffer harus berupa struktur USB_PORT_CONNECTOR_PROPERTIES yang dialokasikan penelepon dan Parameters.DeviceIoControl.InputBufferLength harus sizeof(USB_PORT_CONNECTOR_PROPERTIES). Setelah berhasil diselesaikan, anggota USB_PORT_CONNECTOR_PROPERTIES ActualLengthmenunjukkan ukuran buffer yang sebenarnya. Jika ada nama tautan simbolis, nilai yang diterima menyertakan ukuran string yang menyimpan nama tautan.

Berdasarkan nilai ActualLength , pemanggil kemudian dapat mengalokasikan buffer dan mengirim permintaan IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES lagi. Setelah permintaan selesai, buffer diisi dengan informasi port dan anggota CompanionHubSymbolicLinkName adalah string Unicode yang berisi nama tautan simbolis hub pendamping.

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_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES