IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE IOCTL (usbioctl.h)
Permintaan I/O IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE mendaftarkan driver perangkat multifungsi USB (driver komposit) dengan tumpukan driver USB yang mendasar.
Permintaan ini dikirim oleh driver yang menggantikan driver komposit yang disediakan Microsoft, Usbccgp.sys, dan mengimplementasikan fitur penangguhan fungsi dan bangun jarak jauh, sesuai spesifikasi Universal Serial Bus (USB) 3.0.
IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE adalah permintaan kontrol I/O mode kernel. Permintaan ini menargetkan objek perangkat fisik (PDO) hub USB. Permintaan ini harus dikirim pada tingkat permintaan interupsi (IRQL) PASSIVE_LEVEL.
Kode utama
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer input
Parameters.Others.Argument1 adalah penunjuk ke struktur REGISTER_COMPOSITE_DEVICE< penelepon yang dialokasikan dan diinisialisasi yang berisi informasi tentang driver induk. Untuk menginisialisasi struktur, panggil rutinitas USBD_BuildRegisterCompositeDevice .
Anggota AssociatedIrp.SystemBuffer menunjuk ke buffer yang dialokasikan pemanggil yang cukup besar untuk menyimpan array handel fungsi (diketik USBD_FUNCTION_HANDLE) untuk fungsi di perangkat komposit USB. Jumlah elemen dalam array ditunjukkan oleh anggota FunctionCountdari REGISTER_COMPOSITE_DEVICE. Untuk mendapatkan jumlah fungsi, periksa deskriptor yang dikembalikan oleh permintaan get-configuration.
Panjang buffer input
Ukuran struktur REGISTER_COMPOSITE_DEVICE .
Buffer output
Pada output, buffer yang diacu oleh anggota AssociatedIrp.SystemBuffer diisi dengan handel fungsi untuk fungsi di perangkat multifungsi.
Panjang buffer output
Ukuran handel fungsi untuk fungsi di perangkat.
Blok status
Tumpukan driver USB mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS jika permintaan berhasil diselesaikan. STATUS_SUCCESS menunjukkan bahwa handel fungsi valid.
Jika terjadi kesalahan, Irp-IoStatus.Status> berisi status kesalahan yang sesuai. Misalnya, jika driver komposit mengirim permintaan lebih dari sekali, Status diatur ke STATUS_INVALID_DEVICE_REQUEST.
Keterangan
Tujuan IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE adalah agar driver komposit mengirim permintaan pendaftaran ke tumpukan driver USB. Dalam permintaan pendaftaran, driver komposit menentukan jumlah fungsi yang didukung oleh perangkat. Oleh karena itu, Anda harus mengirim permintaan IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE setelah menentukan jumlah fungsi. Biasanya, informasi tersebut diambil dalam IRP_MN_START_DEVICE rutin perangkat mulai driver komposit. Perhatikan bahwa jumlah antarmuka dalam konfigurasi dapat menunjukkan jumlah fungsi, tetapi tidak selalu. Perangkat multifungsi tertentu mengekspos beberapa antarmuka yang terkait dengan satu fungsi. Untuk mendapatkan jumlah fungsi, Anda harus memeriksa berbagai deskriptor yang terkait dengan konfigurasi tertentu. Deskriptor tersebut dapat diperoleh melalui permintaan get-descriptor.
Menanggapi permintaan pendaftaran, tumpukan driver USB menyediakan daftar handel untuk fungsi di perangkat. Untuk contoh kode, lihat Cara Mendaftarkan Perangkat Komposit.
Setelah driver komposit terdaftar, driver dapat mengonfigurasi fitur bangun jarak jauh. Dengan menggunakan handel fungsi, driver komposit dapat mengirim permintaan IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION untuk mendapatkan pemberitahuan bangun jarak jauh dari tumpukan driver USB, ketika fungsi terkait mengirim sinyal resume.
Untuk menghapus asosiasi driver komposit dengan tumpukan driver USB dan melepaskan semua sumber daya yang dialokasikan untuk pendaftaran, driver harus mengirim permintaan IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Header | usbioctl.h (termasuk Usbioctl.h) |
IRQL | PASSIVE_LEVEL |
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