Bagikan melalui


Gambaran umum enumerasi koleksi antarmuka pada perangkat komposit USB

Antarmuka pada perangkat USB komposit dapat dikelompokkan dalam koleksi. Driver induk generik USB (Usbccgp.sys) dapat menghitung koleksi antarmuka dalam empat cara.

Keempat metode enumerasi koleksi antarmuka ini disusun secara hierarkis dengan cara berikut:

  1. Rutinitas panggilan balik yang disediakan vendor

    Jika vendor telah mendaftarkan rutinitas panggilan balik dengan USB Generic Parent Driver (Usbccgp.sys), driver induk generik lebih diutamakan untuk rutinitas panggilan balik, dan memungkinkan rutinitas panggilan balik untuk mengelompokkan antarmuka daripada menggunakan beberapa metode lain. Untuk informasi selengkapnya tentang enumerasi pengumpulan antarmuka menggunakan rutinitas panggilan balik yang disediakan vendor, lihat Enumerasi Koleksi Antarmuka pada Perangkat Komposit USB.

  2. Deskriptor fungsional serikat pekerja

    . Jika vendor telah mengaktifkan enumerasi CDC dan WMCDC di driver induk generik USB, driver induk generik menggunakan deskriptor fungsional gabungan (UFD) untuk mengelompokkan antarmuka ke dalam koleksi. Ketika diaktifkan, metode ini lebih diutamakan daripada semua metode lain, kecuali untuk rutinitas panggilan balik yang disediakan vendor.

  3. Deskriptor asosiasi antarmuka

    Jika ada deskriptor asosiasi antarmuka (IAD), driver induk generik USB selalu mengelompokkan antarmuka dengan menggunakan IAD daripada menggunakan metode warisan. Microsoft merekomendasikan agar vendor menggunakan IAD untuk menentukan koleksi antarmuka.

  4. Metode audio lama

    Driver induk generik USB dapat mendaftarkan kumpulan antarmuka dengan menggunakan teknik lama yang dicadangkan untuk fungsi audio. Driver induk generik tidak menggunakan metode ini jika ada IAD pada perangkat.

Menyesuaikan enumerasi koleksi antarmuka untuk perangkat komposit

Beberapa perangkat USB memiliki koleksi antarmuka yang tidak dapat dijelaskan oleh Deskriptor Asosiasi Antarmuka USB (IAD). Di Windows Vista dan sistem operasi yang lebih baru, vendor dapat menyesuaikan cara USB Generic Parent Driver (Usbccgp.sys) menentukan dan menghitung koleksi antarmuka perangkat. Ini dilakukan melalui rutinitas panggilan balik enumerasi dalam driver filter. Rutinitas panggilan balik membantu driver induk generik dalam menentukan koleksi antarmuka kustom untuk perangkat.

Agar driver induk generik menentukan koleksi antarmuka kustom, vendor perangkat komposit harus:

  1. Terapkan rutinitas panggilan balik enumerasi (USBC_START_DEVICE_CALLBACK).
  2. Berikan pointer ke rutinitas panggilan balik di antarmuka konfigurasi perangkat USB (anggota StartDeviceCallbackUSBC_DEVICE_CONFIGURATION_INTERFACE_V1).
  3. Berikan file INF yang cocok dengan ID perangkat perangkat komposit dan secara eksplisit memuat driver induk generik USB dan driver filter.

Pertimbangan implementasi

Driver filter yang berisi rutinitas panggilan balik enumerasi dapat berupa driver filter atas atau bawah. Ketika driver induk generik USB menerima permintaan IRP_MN_START_DEVICE untuk memulai perangkat komposit, ia meminta antarmuka konfigurasi perangkat USB dengan mengirim permintaan IRP_MN_QUERY_INTERFACE ke bagian atas tumpukan driver.

Saat menerima permintaan IRP_MN_QUERY_INTERFACE , driver filter harus memeriksa jenis GUID di anggota InterfaceType permintaan untuk memverifikasi bahwa antarmuka yang diminta berjenis USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID. Jika ya, driver filter mengembalikan penunjuk ke antarmuka di anggota Antarmuka IRP.

Rutinitas panggilan balik enumerasi harus mengembalikan penunjuk ke array deskriptor fungsi (USBC_FUNCTION_DESCRIPTOR) yang menjelaskan koleksi antarmuka. Setiap deskriptor fungsi berisi array deskriptor antarmuka (USB_INTERFACE_DESCRIPTOR) yang menjelaskan koleksi antarmuka. Prosedur pemanggilan balik harus mengalokasikan deskriptor fungsi dan deskriptor antarmuka dari kumpulan non-paged. Driver induk generik merilis memori ini. Rutinitas panggilan balik harus memastikan bahwa anggota NumberOfInterfaces dari setiap USB_INTERFACE_DESCRIPTOR secara akurat melaporkan jumlah antarmuka dalam koleksi antarmuka.

Driver induk generik membuat objek perangkat fisik (PDO) untuk setiap deskriptor fungsi.

Antarmuka konfigurasi perangkat USB dan rutinitas panggilan balik enumerasi dirangkum dalam Rutinitas Driver Induk Generik.

Mekanisme pemuatan driver induk generik USB

Ketika perangkat komposit memenuhi persyaratan yang dijelaskan dalam Enumerasi Perangkat Komposit USB, sistem operasi menghasilkan ID USB\COMPOSITE yang kompatibel untuk menunjukkan bahwa perangkat komposit. ID yang kompatibel menghasilkan kecocokan di Usb.inf, dan sistem operasi memuat driver induk generik USB, secara otomatis, tanpa bantuan file INF yang disediakan vendor.

Namun, mekanisme default ini tidak berfungsi untuk perangkat komposit yang memerlukan enumerasi kustom koleksi antarmuka, karena dalam mekanisme default sistem tidak memuat driver filter yang disediakan vendor yang diperlukan. Agar mekanisme rutin panggilan balik enumerasi berfungsi, driver filter yang mengekspos antarmuka konfigurasi perangkat USB harus sudah dimuat ketika induk generik USB menghitung koleksi antarmuka perangkat komposit. Ini mengharuskan vendor perangkat komposit untuk menginstal file INF yang cocok dengan ID perangkat perangkat komposit dan secara eksplisit memuat driver induk generik USB dan driver filter.

Dukungan untuk Kelas Perangkat Komunikasi Seluler Nirkabel

Di Windows Vista USB Generic Parent Driver (Usbccgp.sys) menyediakan dukungan untuk perangkat yang disertakan dalam Universal Serial Bus (USB) Communication Device Class (CDC) dan USB Wireless Mobile Communication Device Class (WMCDC).

Spesifikasi USB Wireless Mobile Communication Device Class (WMCDC) menetapkan standar untuk pertukaran koneksi, kontrol, dan konten antara host dan perangkat seluler nirkabel (misalnya, ponsel) ketika perangkat terhubung ke port USB. WMCDC adalah ekstensi dari kelas perangkat komunikasi (CDC), yang mencakup berbagai perangkat komunikasi dan jaringan. Bagian ini menjelaskan arsitektur yang mendukung perangkat CDC dan WMCDC dalam sistem operasi Windows.

Perangkat WMCDC terdiri dari beberapa fungsi yang dijadikan satu kelompok dalam handset logis. Sebagian besar perangkat WMCDC memiliki satu handset logis, tetapi perangkat mungkin memiliki beberapa handset logis. Handset logis biasanya mencakup fungsi seperti modem data/faks, penyimpanan objek, dan fasilitas kontrol panggilan. Handset logis mungkin juga mencakup fungsi pendukung yang ditentukan oleh spesifikasi USB lainnya seperti spesifikasi Usb Audio Class, spesifikasi kelas USB Human Input Device (HID), dan spesifikasi Usb Video Class.

Arsitektur Windows WMCDC menggunakan driver Windows asli untuk mengelola fungsi perangkat WMCDC Anda. Misalnya, Anda dapat menggunakan subsistem antarmuka program aplikasi telefoni Windows (TAPI) untuk mengelola fungsi modem suara dan data/faks perangkat Anda dan subsistem spesifikasi antarmuka driver jaringan Windows (NDIS) untuk mengelola fungsi LAN Ethernet perangkat. Selain itu, Anda dapat mengelola beberapa fungsi, seperti fungsi Object Exchange Protocol (OBEX), dalam perangkat lunak mode pengguna dengan bantuan WinUSB (Winusb.sys).

Gambar ini menunjukkan contoh tumpukan driver untuk perangkat WMCDC.

Diagram konfigurasi perangkat sampel dan tumpukan driver.

Pada gambar sebelumnya, perangkat WMCDC berisi satu handset logis: fungsi OBEX dan fungsi modem. File INF yang disediakan vendor memuat driver Windows asli untuk mengelola modem. Fungsi OBEX dikelola oleh driver mode pengguna yang disediakan vendor yang berjalan di User-Mode Driver Framework (UMDF). driver mode pengguna menggunakan protokol Windows Portable Devices (WPD) untuk berkomunikasi dengan aplikasi pengguna dan antarmuka yang diekspor Introduction to WinUSB for Developers untuk berkomunikasi dengan tumpukan USB. Secara umum, file INF yang disediakan vendor akan memuat instans terpisah Winusb.sys untuk setiap koleksi antarmuka yang menggunakan Winusb.sys.

Pengaturan Registri

Lapisan USB tidak secara otomatis mendukung WMCDC. Anda harus menyediakan file INF yang memuat instans Usbccgp.sys. File INF harus berisi bagian AddReg yang mengatur nilai registri EnumeratorClass dalam kunci perangkat lunak yang terkait dengan Usbccgp.sys ke nilai REG_BINARY yang dibangun dari tiga angka: 0x02, 0x00, dan 0x 00. Contoh kode berikut dari contoh file INF menggambarkan cara mengatur EnumeratorClass ke nilai yang sesuai.

[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg

[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services

[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass, 0x00000001,02,00,00

Nilai yang harus Anda tetapkan ke EnumeratorClass dibangun dari tiga nilai biner 1-byte yang diwakili dalam file INF berdasarkan pasangan digit heksadesimal: 02, 00, dan 00. Ketiga angka ini sesuai dengan nilai yang telah ditetapkan Forum Implementer USB ke kelas perangkat CDC, subkelas perangkat CDC, dan protokol perangkat CDC.

Topik berikut menjelaskan lebih lanjut WMCDC:

Menghitung koleksi antarmuka di WMCDC

Kelas perangkat komunikasi seluler nirkabel USB (WMCDC) adalah subkelas dari kelas perangkat komunikasi USB (CDC). Spesifikasi WMCDC diperluas tetapi tidak secara substansial mengubah panduan CDC untuk menentukan koleksi antarmuka. Secara khusus, perangkat WMCDC harus mematuhi pedoman CDC untuk menentukan koleksi antarmuka.

Koleksi antarmuka CDC berisi antarmuka master (USB_INTERFACE_DESCRIPTOR) yang termasuk dalam kelas antarmuka komunikasi (bInterfaceClass = 0x02) atau kelas antarmuka data (bInterfaceClass = 0x0A). Jika antarmuka master termasuk dalam kelas antarmuka komunikasi (yang merupakan situasi umum), subkelas antarmuka master (bInterfaceSubClass) menentukan model kontrol CDC. Model kontrol menunjukkan jenis antarmuka yang disertakan dalam koleksi antarmuka. Untuk deskripsi model kontrol yang ditentukan Forum Pelaksana USB, lihat spesifikasi CDC dan spesifikasi WMCDC.

Antarmuka utama dari koleksi antarmuka diikuti oleh sekumpulan deskriptor fungsional yang wajib khusus untuk kelas, dan termasuk deskriptor fungsional gabungan (UFD). UFD mencantumkan jumlah antarmuka yang termasuk dalam koleksi. Bidang bMasterInterface dari UFD berisi jumlah antarmuka master. Nol atau lebih bidang bSubordinateInterface berisi jumlah antarmuka (subordinat) lainnya dalam koleksi.

Untuk sebagian besar jenis model kontrol, USB Generic Parent Driver (Usbccgp.sys) membuat satu objek perangkat fisik (PDO) untuk setiap UFD. Tetapi beberapa model kontrol menyertakan antarmuka audio yang dijumlahkan oleh driver induk generik secara terpisah dari koleksi antarmuka tempat antarmuka audio berada. Antarmuka audio muncul dalam daftar antarmuka subordinat (bSubordinateInterface) di UFD koleksi antarmuka, tetapi driver induk generik membuat PDO terpisah untuk antarmuka audio. Baik PDO untuk antarmuka audio maupun PDO untuk koleksi antarmuka yang mencakup antarmuka audio berada langsung di atas objek perangkat fungsional (FDO) dari perangkat komposit induk di dalam pohon objek perangkat. PDO antarmuka audio bukan anak dari koleksi antarmuka.

Ada dua model kontrol yang karakteristik enumerasinya dapat dikonfigurasi dalam registri: model kontrol handset nirkabel (WHCM), yang mendefinisikan handset logis, dan model kontrol Object Exchange Protocol (OBEX). Untuk mengonfigurasi karakteristik enumerasi dari kedua model kontrol ini, Anda harus menyediakan file INF yang memuat instans Usbccgp.sys dan menetapkan nilai CdcFlags dalam kunci perangkat lunak untuk instans Usbccgp.sys. Tabel berikut menjelaskan opsi konfigurasi CdcFlags.

Bit CdcFlags Bit ditetapkan menjadi 0 Bit diatur ke 1
0 (masker = 0x00000001) Driver induk generik USB membuat PDO terpisah untuk setiap antarmuka OBEX. Driver induk generik USB membuat satu PDO untuk semua antarmuka OBEX.
1 (masker = 0x00000010) Driver induk generik USB tidak membuat PDO untuk antarmuka WHCM (perangkat genggam logis). Antarmuka ini tetap tersembunyi dari perspektif pohon objek perangkat. Driver induk generik USB membuat PDO untuk setiap antarmuka WHCM.

Misalnya, untuk menghapus kedua bit (atur ke 0), file INF Anda harus memiliki baris berikut di bagian DDInstall.AddReg .

HKR, , CdcFlags, 0x00010001, 0x00000000

Untuk mengatur kedua bit ke 1, file INF Anda harus memiliki baris berikut.

HKR, , CdcFlags, 0x00010001, 0x00000011

Untuk mengatur bit 0 ke 1 dan bit 1 ke 0, file INF Anda harus memiliki baris berikut.

HKR, , CdcFlags, 0x00010001, 0x00000001

Salah satu bit dapat diatur atau direset, secara independen dari bit lainnya.

Gambar berikut menggambarkan bagaimana konfigurasi registri yang berbeda dapat membuat pohon perangkat yang berbeda untuk perangkat yang sama.

Gambar berikut mengilustrasikan konfigurasi PDO ketika bit 0 dan bit 1 CdcFlags adalah 0.

Diagram yang mengilustrasikan pemetaan koleksi antarmuka ke objek perangkat untuk CdcFlags = 0x00000000.

Koleksi antarmuka model kendali handset nirkabel (WHCM) pada gambar sebelumnya berisi tiga koleksi antarmuka subordinat (bSubordinateInterface): dua koleksi OBEX dan satu koleksi modem. Bit 0 dari CdcFlags adalah 0, sehingga driver induk generik USB tidak membuat PDO untuk koleksi antarmuka WHCM. Bit 1 dari CdcFlags adalah 0, sehingga driver induk generik USB menghasilkan PDO terpisah untuk setiap koleksi antarmuka OBEX.

Gambar berikut mengilustrasikan konfigurasi PDO ketika bit 0 dan bit 1 dari CdcFlags diatur.

Diagram yang mengilustrasikan kumpulan antarmuka ke pemetaan objek perangkat untuk CdcFlags = 0x00010001.

Karena bit 0 dari CdcFlags diatur ke 1, driver induk umum USB membuat PDO untuk kumpulan antarmuka WHCM. Karena bit 1 CdcFlags diatur ke 1, driver induk generik USB mengelompokkan dua koleksi OBEX bersama-sama dan menghasilkan satu PDO untuk kedua koleksi OBEX.

Anda mungkin ingin mewakili koleksi OBEX dengan satu PDO pada tingkat kernel dan untuk membedakan antara setiap koleksi OBEX individu dalam driver mode pengguna. Protokol Windows Portable Devices (WPD) dapat membantu Anda melakukan streaming data multipleks antara fungsi OBEX yang berbeda di tingkat pengguna, ketika semua fungsi OBEX dikelompokkan ke dalam satu PDO pada tingkat kernel.

Contoh file INF berikut memuat driver induk generik USB untuk mengelola perangkat WMCDC dan menginstruksikan induk generik USB untuk membuat PDO untuk handset logis dan membuat satu PDO untuk semua koleksi OBEX dalam handset logis.

[Version]
Signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%MSFT%
DriverVer=07/01/2001,5.1.2600.0
CatalogFile=ExampleCatalog.cat
PnpLockdown=1

[ControlFlags]
ExcludeFromSelect=*

[Manufacturer]
CompanyName=CompanyName,NTamd64

[CompanyName.NTamd64]
%COMPANYNAME.DeviceDesc%=CCGPDriverInstall,USB\Vid_????&Pid_????

[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg

[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services

[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass,0x00000001,02,00,00
HKR,,CdcFlags,0x00010001,0x00010001

[Strings]
MSFT="Microsoft"
COMPANYNAME.DeviceDesc="USB Phone Parent"

Menangani koleksi antarmuka CDC dan WMCDC

Driver induk generik USB menangani antarmuka model kontrol handset nirkabel (WHCM) dengan cara khusus.

Daftar berikut ini merangkum cara terpenting di mana penanganan koleksi antarmuka CDC dan WMCDC berbeda dari koleksi antarmuka lainnya:

  • Kelas perangkat komunikasi seluler nirkabel hanya memungkinkan penumpukan koleksi antarmuka dalam jumlah terbatas. Secara khusus, koleksi antarmuka handset logis (yaitu, koleksi antarmuka WHCM) dapat berisi koleksi antarmuka bawahan lainnya. Misalnya, ponsel yang mematuhi WMCDC dapat memiliki koleksi antarmuka WHCM, yang pada gilirannya, berisi koleksi model kontrol abstrak dan koleksi OBEX.
  • Anda dapat mengonfigurasi driver induk generik USB untuk tidak menghitung koleksi antarmuka WHCM. Koleksi antarmuka WHCM yang tidak dijumlahkan tetap tersembunyi, tetapi driver induk generik menggunakan informasi dari deskriptor fungsi gabungan (UFD) yang termasuk dalam koleksi antarmuka WHCM untuk mengelompokkan dan menghitung koleksi antarmuka subordinat.
  • Anda dapat mengonfigurasi driver induk generik USB untuk membuat objek perangkat fisik (PDO) terpisah untuk koleksi antarmuka model kontrol OBEX, atau untuk membuat PDO tunggal untuk semua koleksi antarmuka model kontrol OBEX.
  • Daftar nomor antarmuka dalam UFD dapat memiliki celah. Artinya, nomor antarmuka UFD dapat merujuk ke antarmuka yang tidak bersebelahan. Jenis penomoran ini tidak valid, misalnya, untuk Deskriptor Asosiasi Antarmuka USB (IAD), yang antarmukanya harus berdekatan dan memiliki angka berurutan.
  • UFD dapat menyertakan koleksi antarmuka audio terkait
  • Pengidentifikasi perangkat keras (ID) untuk koleksi antarmuka CDC dan WMCDC harus menyertakan subkelas antarmuka. Antarmuka USB lainnya, yang ID perangkat kerasnya berisi akhiran MI_%02X yang menentukan nomor antarmuka, tidak berisi informasi tentang subkelas antarmuka. Informasi subkelas disertakan dalam ID perangkat keras untuk memungkinkan vendor menyediakan file INF dengan kecocokan ID perangkat keras untuk koleksi antarmuka tertentu, alih-alih mengandalkan posisi antarmuka dalam tata letak deskriptor untuk menentukan driver mana yang akan dimuat untuk koleksi. Informasi subkelas dalam ID perangkat keras juga memungkinkan jalur migrasi bertahap dari driver yang disediakan vendor saat ini yang mengelola koleksi antarmuka WMCDC ke alternatif, seperti driver mode pengguna. Untuk diskusi umum tentang bagaimana ID perangkat keras antarmuka USB diformat, lihat Pengidentifikasi untuk Perangkat USB.

Model Kontrol CDC dan WMCDC

Bagian Model Kontrol CDC dan WMCDC menjelaskan properti koleksi antarmuka yang didukung dalam sistem operasi Microsoft Windows. Setiap deskripsi mencakup, antara lain, daftar pengidentifikasi perangkat keras dan perangkat (ID) yang dihasilkan driver induk generik USB untuk koleksi antarmuka.

Sebagian besar koleksi antarmuka yang didukung Windows sesuai dengan model kontrol yang termasuk dalam kelas perangkat komunikasi (CDC) dan kelas perangkat komunikasi seluler nirkabel (WMCDC), tetapi sistem operasi juga mendukung koleksi antarmuka audio dan video warisan dan koleksi antarmuka yang ditentukan Konsorsium Promosi Komputasi Seluler (MCPC).

Koleksi antarmuka yang dijelaskan di bagian ini adalah sebagai berikut:

Antarmuka Kelas Audio

Koleksi antarmuka kelas Perangkat Audio USB yang terjadi pada perangkat CDC dan WMCDC memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Perangkat Universal Serial Bus untuk Perangkat Audio, versi 1.0.
Kelas Semua antarmuka dalam koleksi antarmuka harus milik Kelas Perangkat Audio (0x01).
Subkelas Setiap antarmuka dalam koleksi antarmuka harus memiliki subkelas yang berbeda dari antarmuka pertama dalam koleksi.
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Nol atau lebih antarmuka yang berdampingan yang termasuk dalam subkelas streaming (0x02).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x
USB\Vid_%04x&Pid_%04x&MI_%02x

ID perangkat keras untuk koleksi antarmuka audio tidak berisi informasi khusus kelas antarmuka.
ID yang kompatibel USB\Class_01&SubClass_01&Prot_00
USB\Class_01&SubClass_01
USB\Class_01

Format ID yang kompatibel untuk koleksi antarmuka audio berisi informasi yang disematkan tentang kelas antarmuka, subkelas antarmuka, dan protokol. Untuk koleksi antarmuka audio pada perangkat CDC atau WMCDC, kelas antarmukanya adalah 01, subkelasnya adalah 01, dan protokolnya adalah 00.

Model Kontrol Abstrak CDC

Ada dua versi Model Kontrol Abstrak (ACM). Versi asli didefinisikan dalam spesifikasi USB Communication Device Class (CDC). Spesifikasi USB Wireless Mobile Communication Device Class (WMCDC) berisi definisi yang diperluas dari ACM.

Koleksi antarmuka yang mematuhi spesifikasi WMCDC dijelaskan di halaman ini.

Koleksi antarmuka yang mematuhi spesifikasi CDC memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.6.2.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama ACM (0x02).
Protokol Apa saja.
Disebutkan Ya.
Antarmuka terkait Satu antarmuka kelas data dan antarmuka kelas audio opsional yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02
USB\Vid_%04x&Pid_%04x&Cdc_02&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_02
ID yang kompatibel USB\Class_02&SubClass_02&Prot_%02X
USB\Class_02&SubClass_02
USB\Class_02
Penanganan khusus UFD dapat mereferensikan koleksi antarmuka audio yang dijumlahkan secara independen dari koleksi antarmuka ACM.

Model Kontrol Jaringan ATM CDC

Koleksi antarmuka USB CDC ATM Networking Control Model (ANCM) memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.8.3
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02)
Subkelas antarmuka utama ANCM (0x07)
Protokol Tidak ada (0x00)
Disebutkan Ya
Antarmuka terkait Satu antarmuka kelas data yang direferensikan oleh Union Functional Descriptor (UFD)
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07
USB\Vid_%04x&Pid_%04x&Cdc_07&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_07
ID yang kompatibel USB\Class_02&SubClass_07&Prot_00
USB\Class_02&SubClass_07
USB\Class_02
Penanganan khusus Tidak

Model kontrol CDC CAPI

Koleksi antarmuka Model Kontrol USB CDC Common ISDN API (CAPI) memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.7.2
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02)
Subkelas antarmuka utama CAPI (0x05)
Protokol Tidak ada (0x00)
Disebutkan Ya
Antarmuka terkait Satu antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05
ID yang kompatibel USB\Class_02&SubClass_05&Prot_00
USB\Class_02&SubClass_05
Penanganan khusus Tidak

Model kontrol garis langsung CDC

Koleksi antarmuka USB CDC direct line control model (DLCM) memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.6.1.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama DLCM (0x01).
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Kelas Audio atau antarmuka yang ditentukan vendor yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01
USB\Vid_%04x&Pid_%04x&Cdc_01&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_01
ID yang kompatibel USB\Class_02&SubClass_01&Prot_00
USB\Class_02&SubClass_01``USB\Class_02
Penanganan khusus UFD mereferensikan koleksi antarmuka kelas audio yang dijumlahkan secara independen dari koleksi antarmuka DLCM.

Model kontrol jaringan CDC Ethernet

Koleksi antarmuka USB CDC Ethernet networking control model (ENCM) memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.8.2.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama ENCM (0x06).
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Satu antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06
USB\Vid_%04x&Pid_%04x&Cdc_06&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_06
ID yang kompatibel USB\Class_02&SubClass_06&Prot_00
USB\Class_02&SubClass_06
USB\Class_02
Penanganan khusus ID yang kompatibel dari model kontrol ini memiliki kecocokan dalam file INF yang disediakan Microsoft. Jika sistem operasi tidak menemukan kecocokan untuk salah satu ID perangkat keras dalam file INF yang disediakan vendor, sistem secara otomatis memuat driver miniport NDIS asli untuk mengelola koleksi antarmuka.

Model kontrol multi-saluran ISDN CDC

Koleksi antarmuka USB CDC multi-channel ISDN control model (MCCM) memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.7.1
Kelas Antarmuka Utama Kelas Antarmuka Komunikasi (0x02)
Subkelas antarmuka utama MCCM (0x04)
Protokol Tidak ada (0x00)
Disebutkan Ya
Antarmuka terkait Beberapa antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04
USB\Vid_%04x&Pid_%04x&Cdc_04&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_04
ID yang kompatibel USB\Class_02&SubClass_04&Prot_00
USB\Class_02&SubClass_04
USB\Class_02
Penanganan khusus Tidak

Model kontrol telepon CDC

Koleksi antarmuka USB CDC telephone control model (TCM) memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Bus Serial Universal untuk Perangkat Komunikasi, versi 1.1, Bagian 3.6.3.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas dari antarmuka induk TCM (0x03).
Protokol Apa saja.
Disebutkan Ya.
Antarmuka terkait Antarmuka kelas audio yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03
USB\Vid_%04x&Pid_%04x&Cdc_03&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_03
ID yang Kompatibel USB\Class_02&SubClass_03&Prot_%02X
USB\Class_02&SubClass_03
USB\Class_02
Penanganan khusus UFD dapat mereferensikan koleksi antarmuka kelas audio yang dijumlahkan secara independen dari koleksi antarmuka TCM.

Antarmuka MCPC yang unik dari vendor

Konsorsium Promosi Komputasi Seluler (MCPC) mendefinisikan format untuk koleksi antarmuka sebelum spesifikasi Wireless Mobile Communication Device Class (WMCDC) menyediakan format untuk perangkat CDC unik vendor. Oleh karena itu, koleksi antarmuka MCPC tidak mematuhi standar WMCDC.

Namun, driver induk generik USB dapat menghitung koleksi antarmuka MCPC jika WMCDC diaktifkan. Koleksi antarmuka MCPC memiliki properti berikut.

Properti Deskripsi
Referensi Spesifikasi Mobile Computing Promotion Consortium (MCPC) GL-004
Kelas CDC (0x02)
Subkelas 0x88
Protokol Tidak ada (0x00)
Disebutkan Ya
Antarmuka terkait Nol atau lebih antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD)
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88
USB\Vid_%04x&Pid_%04x&Cdc_88&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_88
ID yang kompatibel USB\Class_02&SubClass_88&Prot_00
USB\Class_02&SubClass_88
USB\Class_02
Penanganan khusus Tidak

Antarmuka kelas video

Koleksi antarmuka kelas perangkat video USB yang terjadi pada perangkat CDC dan WMCDC memiliki properti berikut.

Properti Deskripsi
Referensi Definisi Kelas Perangkat Universal Serial Bus untuk Perangkat Video, versi 1.0.
Kelas Video (0x0E).
Subkelas Kontrol Video (0x01).
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Nol atau lebih antarmuka yang berdampingan yang termasuk dalam subkelas streaming (0x02).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x
USB\Vid_%04x&Pid_%04x&MI_%02x
ID yang kompatibel USB\Class_0E&SubClass_01&Prot_00
USB\Class_0E&SubClass_01
USB\Class_0E
Penanganan khusus Koleksi antarmuka kelas video menerima penanganan khusus pada perangkat CDC. Pada perangkat non-CDC, koleksi antarmuka kelas video ditentukan oleh deskriptor asosiasi antarmuka (IAD). Pada perangkat CDC, koleksi antarmuka kelas video didefinisikan oleh deskriptor fungsional gabungan (UFD).

Model kontrol abstrak WMCDC

Ada dua versi model kontrol abstrak (ACM). Versi asli didefinisikan dalam spesifikasi USB Communication Device Class (CDC). Spesifikasi USB Wireless Mobile Communication Device Class (WMCDC) mengandung definisi ACM yang diperluas. Koleksi ACM yang berisi fungsi faks/modem harus menggunakan definisi WMCDC ACM daripada definisi CDC ACM asli.

Kumpulan antarmuka yang mematuhi spesifikasi CDC dijelaskan di halaman ini.

Koleksi antarmuka yang mematuhi spesifikasi WMCDC memiliki properti berikut.

Properti Deskripsi
Referensi Spesifikasi Subkelas CDC Universal Serial Bus untuk Perangkat Komunikasi Seluler Nirkabel, versi 1.0, Bagian 6.2.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama ACM (0x02).
Protokol Jika koleksi menggunakan Protokol Set Perintah AT, nilai protokol yang disematkan dalam ID yang kompatibel adalah 0x01. Jika koleksi menggunakan salah satu protokol yang dijelaskan spesifikasi WMCDC, nilai protokol yang disematkan dalam ID yang kompatibel 0x2 melalui 0x06, atau 0xFE.
Disebutkan Ya.
Antarmuka terkait Satu antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem
USB\Vid_%04x&Pid_%04x&Cdc_Modem&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_Modem
ID yang kompatibel USB\Class_02&SubClass_Modem&Prot_%02X
USB\Class_02&SubClass_Modem
USB\Class_02
Penanganan khusus UFD mungkin mereferensikan koleksi antarmuka audio yang dijumlahkan secara independen dari koleksi antarmuka ACM.

Koleksi antarmuka harus mematuhi persyaratan deskriptor dan titik akhir khusus yang ditentukan dalam bagian 6.2 dari spesifikasi WMCDC. Jika koleksi antarmuka tidak mematuhi persyaratan WMCDC tetapi antarmuka mematuhi persyaratan CDC, driver induk generik USB akan menghitung koleksi antarmuka dan ID perangkat keras generik dengan format CDC.

ID yang kompatibel dari model kontrol ini memiliki kecocokan dalam file INF yang disediakan Microsoft. Jika sistem operasi tidak menemukan kecocokan untuk salah satu ID perangkat keras dalam file INF yang disediakan vendor, sistem secara otomatis memuat driver filter modem antarmuka pemrograman aplikasi telepon asli (TAPI) untuk mengelola fungsi modem dan mengatur pengaturan registri TAPI yang sesuai, kecuali kode protokol 0xFE. Jika kode protokol 0xFE, vendor harus menyediakan perangkat atau penginstal bersama kelas untuk mengisi pengaturan registri TAPI dengan benar.

Model manajemen perangkat WMCDC

Koleksi antarmuka USB WMCDC device management model (DMM) memiliki properti berikut.

Properti Deskripsi
Referensi Spesifikasi Subkelas CDC Universal Serial Bus untuk Perangkat Komunikasi Seluler Nirkabel, versi 1.0, Bagian 6.6.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama DMM (0x09).
Protokol Apa saja.
Disebutkan Ya.
Antarmuka terkait Tidak ada.
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09
USB\Vid_%04x&Pid_%04x&Cdc_09&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_09
ID yang kompatibel USB\Class_02&SubClass_09&Prot_%02X
USB\Class_02&SubClass_09
USB\Class_02
Penanganan khusus Model kontrol ini tidak menggunakan deskriptor fungsional gabungan (UFD).

WMCDC model saluran langsung seluler

Koleksi antarmuka USB WMCDC mobile direct line model (MDLM) memiliki properti berikut:

Properti Deskripsi
Referensi Spesifikasi Subkelas CDC Universal Serial Bus untuk Perangkat Komunikasi Seluler Nirkabel, versi 1.0, Bagian 6.7
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02)
Subkelas antarmuka utama MDLM (0x0A)
Protokol Apapun
Disebutkan Ya
Antarmuka terkait Satu atau beberapa antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD)
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A
USB\Vid_%04x&Pid_%04x&Cdc_0A&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_0A
ID yang kompatibel USB\Class_02&SubClass_0A&Prot_%02X
USB\Class_02&SubClass_0A
USB\Class_02
Penanganan khusus Tidak ada.

Model kontrol OBEX WMCDC (beberapa PDO)

Ada dua cara untuk menghitung koleksi antarmuka Model Kontrol Object Exchange Protocol (OBEX): driver induk generik USB dapat mengelompokkan semua antarmuka OBEX bersama-sama dan membuat objek perangkat fisik tunggal (PDO) untuk semua antarmuka OBEX, atau driver induk dapat membuat PDO terpisah untuk setiap antarmuka OBEX.

Ketika driver induk generik USB menetapkan PDO terpisah ke setiap antarmuka OBEX, PDO memiliki properti berikut.

Properti Deskripsi
Referensi Spesifikasi Subkelas CDC Universal Serial Bus untuk Perangkat Komunikasi Seluler Nirkabel, versi 1.0, Bagian 6.5.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama OBEX (0x0B).
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Satu antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B
USB\Vid_%04x&Pid_%04x&Cdc_0B&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_0B
ID yang kompatibel USB\Class_02&SubClass_0B&Prot_00
USB\Class_02&SubClass_0B
USB\Class_02
Penanganan khusus Pengaturan registri yang terkait dengan instans driver induk generik USB yang mengelola perangkat komposit menentukan apakah antarmuka OBEX dikelola dengan satu PDO atau beberapa PDO.

Model kontrol OBEX WMCDC (PDO tunggal)

Ada dua cara untuk menghitung koleksi antarmuka model kontrol Object Exchange Protocol (OBEX): driver induk generik USB dapat mengelompokkan semua antarmuka OBEX bersama-sama dan membuat objek perangkat fisik tunggal (PDO) untuk semua antarmuka OBEX, atau driver induk dapat membuat PDO terpisah untuk setiap antarmuka OBEX.

Ketika driver induk generik USB menetapkan satu PDO ke semua antarmuka OBEX, PDO memiliki properti berikut.

Properti Deskripsi
Referensi Spesifikasi Subkelas CDC Universal Serial Bus untuk Perangkat Komunikasi Seluler Nirkabel, versi 1.0, Bagian 6.5.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama OBEX (0x0B).
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Satu antarmuka kelas data yang direferensikan oleh deskriptor fungsional gabungan (UFD).
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX
USB\Vid_%04x&Pid_%04x&WPD_OBEX&MI_%02x
USB\Vid_%04x&Pid_%04x&WPD_OBEX
ID yang kompatibel USB\Class_02&WPD_OBEX
USB\Class_02
Penanganan khusus Pengaturan registri yang terkait dengan instans driver induk generik USB yang mengelola perangkat komposit menentukan apakah antarmuka OBEX dikelola dengan satu PDO atau beberapa PDO. Untuk penjelasan tentang pengaturan registri yang menentukan bagaimana driver induk generik USB menghitung antarmuka OBEX, lihat Enumerasi Koleksi Antarmuka pada Perangkat Komposit USB.

Model kontrol handset nirkabel WMCDC

Driver induk generik USB tidak selalu mengidentifikasi kumpulan antarmuka model kontrol handset nirkabel (WHCM). Pengaturan registri yang terkait dengan instans driver induk generik USB yang mengelola koleksi antarmuka WHCM menentukan apakah driver induk generik USB membuat objek perangkat fisik (PDO) untuk koleksi antarmuka atau tidak. Untuk penjelasan tentang pengaturan registri yang menentukan bagaimana driver induk generik USB menghitung antarmuka WHCM, lihat Enumerasi Koleksi Antarmuka pada Perangkat Komposit USB.

Koleksi antarmuka WHCM enumerasi memiliki properti berikut.

Properti Deskripsi
Referensi Spesifikasi Subkelas CDC Universal Serial Bus untuk Perangkat Komunikasi Seluler Nirkabel, versi 1.0, Bagian 6.1.
Kelas antarmuka utama Kelas Antarmuka Komunikasi (0x02).
Subkelas antarmuka utama WHCM (0x08).
Protokol Tidak ada (0x00).
Disebutkan Ya.
Antarmuka terkait Tidak ada.
ID Perangkat Keras USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08
USB\Vid_%04x&Pid_%04x&Cdc_08&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_08
ID yang kompatibel USB\Class_02&SubClass_08&Prot_00
USB\Class_02&SubClass_08
USB\Class_02
Penanganan khusus Deskriptor fungsional gabungan (UFD) mengidentifikasi antarmuka yang terkait dengan handset logis.

Format ID perangkat keras dalam topik sebelumnya menjelaskan menggunakan konvensi berikut:

  • Format printf bahasa C mewakili bilangan bulat. Misalnya, "%04x" berarti bilangan bulat heksadesimal 4 digit, "%02x" berarti bilangan bulat heksadesimal 2 digit, dan sebagainya.
  • Bilangan bulat yang mengikuti string "Vid_" adalah representasi heksadesimal 4 digit dari kode vendor yang ditetapkan komite USB (<www.usb.org>) ke vendor.
  • Bilangan bulat yang mengikuti string "Pid_" adalah representasi heksadesimal 4 digit dari kode produk yang ditetapkan vendor ke perangkat.
  • Bilangan bulat yang mengikuti string "Rev_" adalah representasi heksadesimal 4 digit dari nomor revisi perangkat.
  • Bilangan bulat yang mengikuti string "Cdc_" adalah subkelas antarmuka.
  • Bilangan bulat yang mengikuti string "Prot_" adalah nomor protokol.
  • Bilangan bulat yang mengikuti string "MI_" adalah representasi heksadesimal 2 digit dari nomor antarmuka, yang diekstrak dari bidang bInterfaceNumber dari deskriptor antarmuka.

Enumerasi koleksi antarmuka pada perangkat USB dengan IAD

Jika perangkat komposit USB memiliki deskriptor asosiasi antarmuka (IAD) di firmwarenya, Windows menghitung koleksi antarmuka seolah-olah setiap koleksi adalah satu perangkat dan menetapkan satu objek perangkat fisik (PDO) ke setiap koleksi antarmuka dan mengaitkan perangkat keras dan pengidentifikasi yang kompatibel (ID) dengan PDO. Untuk deskripsi terperinci tentang IAD, lihat Deskriptor Asosiasi Antarmuka USB. Bagian ini menjelaskan ID perangkat keras dan pengidentifikasi yang kompatibel (ID) yang ditetapkan ke koleksi antarmuka yang terkait dengan IAD.

ID perangkat keras perangkat USB yang memiliki IAD

USB\VID_v(4)&PID_p(4)&Rev_r(4)&MI_z(2)

USB\VID_v(4)&PID_p(4)&MI_z(2)

Dalam ID perangkat keras ini,

  • v(4) adalah kode vendor empat digit yang ditetapkan komite USB ke vendor dan yang diekstrak dari bidang idVendor deskriptor perangkat.
  • p(4) adalah kode produk empat digit yang ditetapkan vendor ke perangkat dan yang diekstrak dari bidang idProduct dari deskriptor perangkat.
  • r(4) adalah nomor rilis perangkat empat digit, dalam revisi desimal berkode biner, yang ditetapkan vendor ke perangkat dan yang diekstrak dari bidang bcdDevice dari deskriptor perangkat.
  • z(2) adalah nomor antarmuka dua digit yang diekstrak dari bidang bFirstInterface IAD.

ID perangkat USB yang kompatibel dengan IAD

USB\Class_c(2)&SubClass_s(2)&Prot_p(2)

USB\Class_c(2)&SubClass_s(2)

USB\Class_c(2)

Dalam ID yang kompatibel ini, c(2), s(2), dan p(2) berisi nilai yang diambil, masing-masing, dari bidang bFunctionClass, bFunctionSubClass, dan bFunctionProtocol dari IAD.

Anda tidak dapat menggunakan IAD secara rekursif untuk mengikat fungsi dari fungsi-fungsi. Secara khusus, jika perangkat memiliki deskriptor IAD dalam firmware-nya, driver induk generik tidak akan mengelompokkan antarmuka berdasarkan kelas perangkat audio, seperti yang dijelaskan dalam Enumerasi Koleksi Antarmuka pada Perangkat Komposit USB.

Enumerasi koleksi antarmuka pada perangkat audio tanpa IAD

Untuk perangkat audio, sistem operasi Windows dapat menghitung grup antarmuka (koleksi antarmuka) yang terkait dengan fungsi dan menetapkan satu objek perangkat fisik (PDO) ke setiap grup, bahkan ketika perangkat tidak memiliki deskriptor asosiasi antarmuka (IAD).

Sistem operasi mengelompokkan antarmuka perangkat audio komposit ke dalam koleksi antarmuka, jika antarmuka memenuhi kondisi berikut:

  • Semua antarmuka dalam koleksi antarmuka harus berturut-turut. Dengan kata lain, antarmuka harus berdekatan satu sama lain dalam memori firmware.
  • Semua antarmuka dalam koleksi antarmuka harus termasuk dalam kelas perangkat audio. Produsen perangkat menentukan bahwa antarmuka milik kelas perangkat audio dengan menetapkan nilai 0x01 ke bidang bInterfaceClass dari deskriptor antarmuka.
  • Setiap antarmuka dalam koleksi antarmuka harus memiliki subkelas yang berbeda dari antarmuka pertama dalam koleksi. Bidang bInterfaceSubClass dari deskriptor antarmuka menentukan subkelas perangkat antarmuka.

Jika antarmuka tidak memenuhi ketiga kondisi ini, Windows akan mencoba menghitungnya secara terpisah alih-alih mengelompokkannya dengan antarmuka kelas audio lainnya.

Sistem operasi tidak mengelompokkan antarmuka kelas audio dengan cara khusus jika deskriptor asosiasi antarmuka (IAD) ada di firmware perangkat. Metode IAD selalu merupakan metode yang lebih disukai untuk mengelompokkan antarmuka USB.

Bagian ini menjelaskan perangkat keras dan pengidentifikasi yang kompatibel (ID) yang terkait dengan PDO yang dibuat oleh sistem operasi untuk koleksi antarmuka yang antarmukanya termasuk dalam kelas perangkat audio.

ID perangkat keras dari perangkat audio tanpa IAD

USB\VID_v(4)&PID_p(4)&Rev_r(4)&MI_z(2)

USB\VID_v(4)&PID_p(4)&MI_z(2)

Dalam ID perangkat keras ini,

  • v(4) adalah kode vendor empat digit yang ditetapkan komite standar USB ke vendor dan yang diekstrak dari bidang idVendor deskriptor perangkat.
  • p(4) adalah kode produk empat digit yang ditetapkan vendor ke perangkat dan yang diekstrak dari bidang idProduct dari deskriptor perangkat.
  • r(4) adalah nomor rilis perangkat empat digit, dalam revisi desimal berkode biner, yang ditetapkan vendor ke perangkat dan yang diekstrak dari bidang bcdDevice dari deskriptor perangkat.
  • z(2) adalah nomor antarmuka dua digit yang diekstrak dari bidang bInterfaceNumber dari deskriptor antarmuka.

ID perangkat audio yang kompatibel tanpa IAD

USB\Class_c(2)&SubClass_s(2)&Prot_p(2)

USB\Class_c(2)&SubClass_s(2)

USB\Class_c(2)

Dalam ID yang kompatibel ini, c(2), s(2), dan p(2) berisi nilai yang diambil, masing-masing, dari bidang bInterfaceClass, bInterfaceSubClass, dan bInterfaceProtocol dari deskriptor antarmuka USB pertama di setiap koleksi antarmuka.