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
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk