在Android USB之复合设备(gadget)详解一篇中提到了USB Gadget UAC(USB Audio Class)的使用。Rockchip 平台可以支持 UAC1(兼容 USB Audio Class specification 1.0)和 UAC2(兼容 USB Audio Class specification 2.0)驱动,这两个驱动都可以支持基础的录音和放音功能。
如果要支持音量调节/静音功能,需要添加另外 HID 的控制。
可以先到https://www.usbzh.com/article/detail-182.html 学习一下对某个USB音箱工作抓包分析。
接下来通过绿联一款USB声卡抓包分析实践:
在设备管理器中USB声卡信息如下图所示,可以看出是UAC复合设备(麦克风,扬声器,HID设备):
在BUSHOUND下如下图所示:
USB输入设备用于音频的控制,使用的是HID方式,其抓包内容如下:
Bus Hound 6.00 capture on Windows Vista (x64). Complements of www.perisoft.net
1
Device - Device ID (followed by the endpoint for USB devices)
(72) USB Audio Device
Phase - Phase Type
CTL USB control transfer
ISOC Isochronous transfer
OUT Data out transfer
RESET bus reset
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data
Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- ------------------------------------------------------------------------------------------------------ -------------------------------- ------------------
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 1.1.0
72.0 OUT ff f6 .. 1.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 2.1.0
72.0 OUT ff f6 .. 2.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 3.1.0
72.0 OUT 3f f7 ?. 3.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 4.1.0
72.0 OUT 3f f7 ?. 4.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 5.1.0
72.0 OUT 7d f7 .. 5.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 6.1.0
72.0 OUT 7d f7 .. 6.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 7.1.0
72.0 OUT bb f7 .. 7.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 8.1.0
72.0 OUT bb f7 .. 8.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 9.1.0
72.0 OUT f8 f7 .. 9.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 10.1.0
72.0 OUT f8 f7 .. 10.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 11.1.0
72.0 OUT 33 f8 3. 11.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 12.1.0
72.0 OUT 33 f8 3. 12.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 13.1.0
72.0 OUT 6e f8 n. 13.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 14.1.0
72.0 OUT 6e f8 n. 14.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 15.1.0
72.0 OUT a8 f8 .. 15.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 16.1.0
72.0 OUT a8 f8 .. 16.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 17.1.0
72.0 OUT e1 f8 .. 17.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 18.1.0
72.0 OUT e1 f8 .. 18.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 19.1.0
72.0 OUT 1a f9 .. 19.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 20.1.0
72.0 OUT 1a f9 .. 20.2.0
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 21.1.0
72.0 OUT 51 f9 Q. 21.2.0
72.0 CTL 21 01 02 02 00 09 02 00 SET CUR 22.1.0
72.0 OUT 51 f9 Q. 22.2.0
72.1 RESET 23.1.0
72.1 ISOC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 24.1.0(2)
72.1 ISOC 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 01 00 ................................ 26.1.0
72.1 ISOC 93 f6 93 f6 b5 f6 b6 f6 db f6 db f6 02 f7 02 f7 2b f7 2c f7 58 f7 57 f7 87 f7 87 f7 b9 f7 b9 f7 ................+.,.X.W......... 27.1.0
72.1 ISOC 25 ec 25 ec 24 ec 23 ec 23 ec 22 ec 24 ec 24 ec 29 ec 28 ec 2e ec 2e ec 36 ec 37 ec 42 ec 41 ec %.%.$.#.#.".$.$.).(.....6.7.B.A. 28.1.0
72.1 ISOC 64 ed 64 ed 4d ed 4c ed 39 ed 38 ed 26 ed 25 ed 13 ed 15 ed 05 ed 04 ed f7 ec f7 ec eb ec eb ec d.d.M.L.9.8.&.%................. 29.1.0
72.1 ISOC 60 ef 61 ef 3b ef 3b ef 17 ef 17 ef f4 ee f5 ee d4 ee d4 ee b5 ee b5 ee 98 ee 98 ee 7d ee 7d ee `.a.;.;......................... 30.1.0
72.1 ISOC 36 f1 36 f1 ff f0 ff f0 cb f0 ca f0 97 f0 97 f0 66 f0 66 f0 37 f0 37 f0 08 f0 09 f0 dd ef dd ef 6.6.............f.f.7.7......... 31.1.0
72.1 ISOC 34 f4 35 f4 ec f3 eb f3 a6 f3 a6 f3 61 f3 62 f3 1f f3 1f f3 e0 f2 df f2 a1 f2 a1 f2 65 f2 65 f2 4.5.........a.b.............e.e. 32.1.0
72.1 ISOC 88 f7 87 f7 2f f7 2f f7 d8 f6 d8 f6 84 f6 83 f6 31 f6 32 f6 e0 f5 e0 f5 92 f5 91 f5 44 f5 44 f5 ...././.........1.2.........D.D. 33.1.0
72.1 ISOC 30 fb 30 fb c8 fa c8 fa 63 fa 63 fa ff f9 fe f9 9b f9 9c f9 3a f9 3a f9 db f8 da f8 7b f8 7b f8 0.0.....c.c.........:.:......... 34.1.0
72.1 ISOC 15 ff 15 ff a8 fe a7 fe 3d fe 3c fe d0 fd d0 fd 64 fd 65 fd fb fc fb fc 93 fc 91 fc 29 fc 29 fc ........=.<.....d.e.........).). 35.1.0
72.1 ISOC 28 03 27 03 bc 02 bd 02 51 02 51 02 e6 01 e6 01 7a 01 7a 01 0f 01 0f 01 a3 00 a3 00 38 00 39 00 (.'.....Q.Q.....z.z.........8.9. 36.1.0
72.1 ISOC b7 06 b7 06 53 06 52 06 ee 05 ed 05 88 05 88 05 22 05 22 05 bc 04 bc 04 56 04 56 04 f0 03 ef 03 ....S.R.........".".....V.V..... 37.1.0
72.1 ISOC c6 09 c6 09 6b 09 6b 09 0e 09 0f 09 b1 08 b1 08 53 08 54 08 f4 07 f4 07 95 07 96 07 35 07 34 07 ....k.k.........S.T.........5.4. 38.1.0
USB请求及描述符在线分析(https://www.usbzh.com/tool/usb.html):
(1)调节音量的USB(特定类)请求内容及解析如下:
72.0 CTL 21 01 01 02 00 09 02 00 SET CUR 1.1.0
(21:接口类型请求=主机到设备
(01:特定类请求码 SET CUR
(02 01:大多数情况取值都为控制选择器CS(高字节),低字节为零(这里非0,那1/2对应左右声道?)。
(09 00:实体ID(高字节)、接口(低字节)
(00 02:数据长度2
72.0 OUT ff f6 .. 1.2.0
0x21, // bmRequestType: Dir: H2D, Type: Class, Recipient: Interface
0x01, // bRequest
0x01, 0x02, // wValue[0:15] = 0x0201
0x00, 0x09, // wIndex = 0x0900
0x02, 0x00, // wLength = 2
// 8 bytes
USB请求的个字节分为5个部分,其变量分别定义为: 1字节的bmRequestType,1 字节的bReqest,2字节的wValue,2字节的wIndex和2字节的wLength.
特定类请求码的定义(详细见https://www.usbzh.com/article/detail-172.html):
Class-Specific Request Code | Value |
SET_ CUR | 0x01 |
GET_ CUR | 0x81 |
SET_ MIN | 0x02 |
GET_ MIN | 0x82 |
SET_ MAX | 0x03 |
GET_ MAX | 0x83 |
SET_ RES | 0x04 |
GET_ RES | 0x84 |
SET_MEM | 0x05 |
GET_ MEM | 0x85 |
GET_STAT | 0xFF |
特性单元控制请求支持的选择子(详细见https://www.usbzh.com/article/detail-249.html):
Control Selector | Value |
FU_CONTROL_UNDEFINED | 0x00 |
MUTE_CONTROL | 0x01 |
VOLUME_CONTROL | 0x02 |
BASS_CONTROL | 0x03 |
MID_CONTROL | 0x04 |
TREBLE_CONTROL | 0x05 |
GRAPHIC_EQUALIZER_CONTROL | 0x06 |
AUTOMATIC_GAIN_CONTROL | 0x07 |
DELAY_CONTROL | 0x08 |
BASS_BOOST_CONTROL | 0x09 |
LOUDNESS_CONTROL | 0x0A |
反之,usb设备端要去控制主机端系统音量,比如耳机上的音量键去控制windows pc的音量可通过hid协议实现,以下是华为P40 PRO自带的TYPE-C耳机:
调节耳机音量键时的抓包:
USB标准请求和特定类请求的概念这里有必要做一下解释:
- USB标准请求:是USB设备支持的最基本的请求,凡是USB设备都得支持,不管你是HID设备,UVC设备或者UAC等其它设备,或者是自定义USB设备,凡是USB设备,都得支持这些请求。USB标准请求是USB设备通讯的基础,是对USB设备的最基本配置。
- 特定类请求:一些USB设备除了支持USB标准请求外,还支持其特定类的请求。这里的特定类是其它设类型规范,如HID设备,其有HID类特定请求,这些请求只能出现在HID设备中,其它类型的设备不能用。类特定请求是基本该设备类型的协议扩展,常见的类特定请求有UVC设备的类特定请求,UAC设备的类特定请求和HID设备的类特定请求。
我们知道,不管是什么类型的USB设备,按功能划分可分为控制整个USB设备的,控制某个接口、控制某个端点的,所以不管是USB标准请求还是类特定请求,控制请求的目的地就有设备、接口、端点,也有一些自定义的,如其它。
USB设备的请求都是由主机发起,设备接受响应,所以该请求后的数据就有方向性分为IN和OUT,该方向是相对USB主机来说。
以上的解释其实就是USB规范对bmRequestType字段的解释,更详尽的该字段解释可见:http://www.usbzh.com/article/detail-417.html
bmRequestType字段的USB标准请求(USB基本请求)
- 凡是以0x00开头的bmRequestType,都是主机向设备发送数据。
- 凡是以0x01开头的bmRequestType,都是主机向接口发送数据。
- 凡是以0x02开头的bmRequestType,都是主机向端点发送数据。
- 凡是以0x03开头的bmRequestType,都是主机向设备的其它类型发送数据,软件开发者可以自由定义。
- 凡是以0x80开头的bmRequestType,都是设备向主机发送数据,且返回的数据来源于设备。
- 凡是以0x81开头的bmRequestType,都是设备的接口向主机发送数据。
- 凡是以0x82开头的bmRequestType,都是设备中某个接口的端点向主机发送数据。
- 凡是以0x83开头的bmRequestType,这个是USB标准未规范的,可以自由定义,是其它类型向向主机发送数据
bmRequestType字段的类特定请求(HID,UVC,UAC,BOT)
类特定请求是在bmRequestType的基础上加0x20,所以是:
- 凡是以0x20开头的bmRequestType,都是主机向设备发送数据。
- 凡是以0x21开头的bmRequestType,都是主机向接口发送数据。
- 凡是以0x22开头的bmRequestType,都是主机向端点发送数据。
- 凡是以0x23开头的bmRequestType,都是主机向设备的其它类型发送数据,软件开发者可以自由定义。
- 凡是以0xa0开头的bmRequestType,都是设备向主机发送数据,且返回的数据来源于设备。
- 凡是以0xa1开头的bmRequestType,都是设备的接口向主机发送数据。
- 凡是以0xa2开头的bmRequestType,都是设备中某个接口的端点向主机发送数据。
- 凡是以0xa3开头的bmRequestType,这个是USB标准未规范的,可以自由定义,是其它类型向向主机发送数据
bmRequestType字段的厂商自定义请求(自定义,不常见)
类特定请求是在bmRequestType的基础上加0x40,所以是:
- 凡是以0x40开头的bmRequestType,都是主机向设备发送数据。
- 凡是以0x41开头的bmRequestType,都是主机向接口发送数据。
- 凡是以0x42开头的bmRequestType,都是主机向端点发送数据。
- 凡是以0x43开头的bmRequestType,都是主机向设备的其它类型发送数据,软件开发者可以自由定义。
- 凡是以0xc0开头的bmRequestType,都是设备向主机发送数据,且返回的数据来源于设备。
- 凡是以0xc1开头的bmRequestType,都是设备的接口向主机发送数据。
- 凡是以0xc2开头的bmRequestType,都是设备中某个接口的端点向主机发送数据。
- 凡是以0xc3开头的bmRequestType,这个是USB标准未规范的,可以自由定义,是其它类型向向主机发送数据
在USB请求中(包括标准请求和类特定请求)
- 其bRequest是协议类型,如SET_DESCRIPTOR、GET_IDLE,SET_ADDRESS,GET_CUR,SET_CUR等
- wValue 一般是类相关的,在UVC,UAC中可以是选择子,在标准请求中可以是具体的某些数据,比较详尽的内容
- wIndex,一般高字节为USB设备类的信息类型(如ReportId类型,描述符类型,UVC/UAC规范中的UnitId,终端ID等),低字节为接口的ID、端点的ID、ReportId或描述符索引。
- wLength:数据长度,和bmRequestType的最高位相配合使用
相关USB请求参见:
- USB标准请求:http://www.usbzh.com/article/detail-417.html
- UVC类特定请求:http://www.usbzh.com/article/detail-29.html
- UAC类特定请求:http://www.usbzh.com/article/detail-172.html
- HID类特定请求:http://www.usbzh.com/article/detail-686.html
- 大容量存储:http://www.usbzh.com/article/detail-617.html
不同的请求类型对于其接收者,wValue和wIndex的字段表示的含义有所差别:
bmRequestType(1) | bRequest(1) | wValue(2) | wIndex(2) | wLength(2) | 数据过程 |
0x00 | CLEAR_FEATURE(1) | 特性选择 | 0 | 0 | 没有数据 |
0x01 | CLEAR_FEATURE(1) | 特性选择 | 接口号 | 0 | 没有数据 |
0x02 | CLEAR_FEATURE(1) | 特性选择 | 端点号 | 0 | 没有数据 |
0x80 | GET_CONFIGURATION(8) | 0 | 0 | 1 | 配置制 |
0x80 | GET_DESCRIPTOR(6) | 描述符类型(高字节)和描述符索引(低字节) | 0或语言ID(字符串描述符) | 描述符的长度 | 描述符 |
0x81 | GET_INTERFACE(0x0a) | 0 | 接口号 | 1 | 备用(转换)接口 |
0x80 | GET_STATUS(0) | 0 | 0 | 2 | 设备状态 |
0x81 | GET_STATUS(0) | 0 | 接口号 | 2 | 接口状态 |
0x82 | GET_STATUS(0) | 0 | 端点号 | 2 | 端点状态 |
0x00 | SET_ADDRESS(5) | 设备地址 | 0 | 0 | 没有数据 |
0x00 | SET_CONFIGURATION(9) | 配置值 | 0 | 0 | 没有数据 |
0x00 | SET_DESCRIPTOR(7) | 描述符类型(高字节)和描述符索引(低字节) | 0或语言ID(字符串描述符) | 描述符的长度 | 描述符 |
0x00 | SET_FEATURE(3) | 特性选择 | 0 | 0 | 没有数据 |
0x01 | SET_FEATURE(3) | 特性选择 | 接口号 | 0 | 没有数据 |
0x02 | SET_FEATURE(3) | 特性选择 | 端点号 | 0 | 没有数据 |
0x01 | SET_INTERFACE(0x0b) | 备用接口号(转换接口号) | 接口号 | 0 | 没有数据 |
0x82 | SYNCH_FRAME(0x0c) | 0 | 端点号 | 2 | 帧号 |
(2)报告描述符内容及解析如下:
73.0 IN 05 0c 09 01 a1 01 15 00 25 01 09 e9 09 ea 75 01 95 02 81 02 09 e2 09 00 81 06 05 0b 09 20 95 01 ........%.....u.............. .. 29.2.0
81 06 05 0c 09 00 95 03 81 02 26 ff 00 09 00 75 08 95 03 81 02 09 00 95 04 91 02 c0 ..........&....u............ 29.2.32
73.7 IN 00 00 00 00 .... 30.1.0
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x09, 0xE9, // Usage (Volume Increment)
0x09, 0xEA, // Usage (Volume Decrement)
0x75, 0x01, // Report Size (1)
0x95, 0x02, // Report Count (2)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xE2, // Usage (Mute)
0x09, 0x00, // Usage (Unassigned)
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x0B, // Usage Page (Telephony)
0x09, 0x20, // Usage (Hook Switch)
0x95, 0x01, // Report Count (1)
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x00, // Usage (Unassigned)
0x95, 0x03, // Report Count (3)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x09, 0x00, // Usage (Unassigned)
0x75, 0x08, // Report Size (8)
0x95, 0x03, // Report Count (3)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x00, // Usage (Unassigned)
0x95, 0x04, // Report Count (4)
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0, // End Collection
// 60 bytes
完整的usb设备描述符:
=========================== USB Port4 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 2-1-4
========================== Summary =========================
Vendor ID : 0x0D8C (C-MEDIA ELECTRONICS INC.)
Product ID : 0x0014
USB Version : 1.10
Port maximum Speed : High-Speed
Device maximum Speed : Full-Speed
Device Connection Speed : Full-Speed
Self powered : no
Demanded Current : 100 mA
Used Endpoints : 2
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \\?\USB#VID_0D8C&PID_0014#6&7da4f7c&0&4#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-9
Device ID : USB\VID_0D8C&PID_0014\6&7DA4F7C&0&4
Hardware IDs : USB\VID_0D8C&PID_0014&REV_0100 USB\VID_0D8C&PID_0014
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0040 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.22621.608 Date: 2022-10-12)
Driver Inf : C:\WINDOWS\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0004.Hub_#0003
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1)#USB(4), ACPI(_SB_)#ACPI(PC00)#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS01)#USB(4)
Container ID : {785c39f1-6e2a-11ed-a4ce-8cb87eb37742}
Manufacturer Info : (标准 USB 主控制器)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 4
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend : 0
SelectiveSuspendEnabled : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState : 0
WakeFromSleepState : 0
Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)
Child Device 1 : USB Audio Device
Device Path 1 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 2 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 3 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 4 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 5 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 6 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 7 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 8 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 9 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 10 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 11 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Device Path 12 : \\?\USB#VID_0D8C&PID_0014&MI_00#7&2f7b51ae&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
Kernel Name : \Device\00000454
Device ID : USB\VID_0D8C&PID_0014&MI_00\7&2F7B51AE&0&0000
Class : MEDIA
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0027 (GUID_DEVCLASS_MEDIA)
Service : usbaudio
Location : 0000.0014.0000.001.004.000.000.000.000
LocationPaths : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1)#USB(4)#USBMI(0) PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1)#USB(4)#USB(4) ACPI(_SB_)#ACPI(PC00)#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS01)#USB(4)#USBMI(0) ACPI(_SB_)#ACPI(PC00)#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS01)#USB(4)#USB(4)
Child Device 1 : 扬声器 (USB Audio Device) (音频端点)
Device ID : SWD\MMDEVAPI\{0.0.0.00000000}.{87FF8E0D-21EE-4057-971D-3182F257AF34}
Class : AudioEndpoint
Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0072 (AUDIOENDPOINT_CLASS_UUID)
Child Device 2 : 麦克风 (USB Audio Device) (音频端点)
Device ID : SWD\MMDEVAPI\{0.0.1.00000000}.{62244A14-B910-4942-9BFB-50D623AC91A1}
Class : AudioEndpoint
Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0073 (AUDIOENDPOINT_CLASS_UUID)
Child Device 2 : USB 输入设备
Device ID : USB\VID_0D8C&PID_0014&MI_03\7&2F7B51AE&0&0003
Class : HIDClass
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0080 (GUID_DEVCLASS_HIDCLASS)
Service : HidUsb
Location : 0000.0014.0000.001.004.000.000.000.000
LocationPaths : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1)#USB(4)#USBMI(3) ACPI(_SB_)#ACPI(PC00)#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS01)#USB(4)#USBMI(3)
Child Device 1 : 符合 HID 标准的用户控制设备
Device Path : \\?\HID#VID_0D8C&PID_0014&MI_03#8&32eba1a5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name : \Device\00000457
Device ID : HID\VID_0D8C&PID_0014&MI_03\8&32EBA1A5&0&0000
Class : HIDClass
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0081 (GUID_DEVCLASS_HIDCLASS)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags
GlobalDisableSerNumGen : REG_BINARY 00
---------------- Connection Information ---------------
Connection Index : 0x04 (Port 4)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x36 (54)
Is Hub : 0x00 (no)
Device Bus Speed : 0x01 (Full-Speed)
Number Of Open Pipes : 0x01 (1 pipe to data endpoints)
Pipe[0] : EndpointID=7 Direction=IN ScheduleOffset=0 Type=Interrupt
Data (HexDump) : 04 00 00 00 12 01 10 01 00 00 00 08 8C 0D 14 00 ................
00 01 01 02 00 01 01 01 00 36 00 01 00 00 00 01 .........6......
00 00 00 07 05 87 03 04 00 02 00 00 00 00 ..............
--------------- Connection Information V2 -------------
Connection Index : 0x04 (4)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0)
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 04 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 ................
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x110 (USB Version 1.10)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x08 (8 bytes)
idVendor : 0x0D8C (C-MEDIA ELECTRONICS INC.)
idProduct : 0x0014
bcdDevice : 0x0100
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : "C-Media Electronics Inc."
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : "USB Audio Device"
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 10 01 00 00 00 08 8C 0D 14 00 00 01 01 02 ................
00 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x00FD (253 bytes)
bNumInterfaces : 0x04 (4 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
Data (HexDump) : 09 02 FD 00 04 01 00 80 32 09 04 00 00 00 01 01 ........2.......
00 00 0A 24 01 00 01 64 00 02 01 02 0C 24 02 01 ...$...d.....$..
01 01 00 02 03 00 00 00 0C 24 02 02 01 02 00 01 .........$......
01 00 00 00 09 24 03 06 01 03 00 09 00 09 24 03 .....$........$.
07 01 01 00 08 00 07 24 05 08 01 0A 00 0A 24 06 .......$......$.
09 0F 01 01 02 02 00 09 24 06 0A 02 01 43 00 00 ........$....C..
09 24 06 0D 02 01 03 00 00 0D 24 04 0F 02 01 0D .$........$.....
02 03 00 00 00 00 09 04 01 00 00 01 02 00 00 09 ................
04 01 01 01 01 02 00 00 07 24 01 01 01 01 00 0E .........$......
24 02 01 02 02 10 02 80 BB 00 44 AC 00 09 05 01 $.........D.....
09 C8 00 01 00 00 07 25 01 01 01 01 00 09 04 02 .......%........
00 00 01 02 00 00 09 04 02 01 01 01 02 00 00 07 ................
24 01 07 01 01 00 0E 24 02 01 01 02 10 02 80 BB $......$........
00 44 AC 00 09 05 82 0D 64 00 01 00 00 07 25 01 .D......d.....%.
01 00 00 00 09 04 03 00 01 03 00 00 00 09 21 00 ..............!.
01 00 01 22 3C 00 07 05 87 03 04 00 02 ..."<........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 00 01 01 00 00 .........
------ Audio Control Interface Header Descriptor ------
bLength : 0x0A (10 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header)
bcdADC : 0x0100
wTotalLength : 0x0064 (100 bytes)
bInCollection : 0x02
baInterfaceNr[1] : 0x01
baInterfaceNr[2] : 0x02
Data (HexDump) : 0A 24 01 00 01 64 00 02 01 02 .$...d....
------- Audio Control Input Terminal Descriptor -------
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal)
bTerminalID : 0x01
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00
bNrChannels : 0x02 (2 channels)
wChannelConfig : 0x0003 (L, R)
iChannelNames : 0x00 (No String Descriptor)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 02 01 01 01 00 02 03 00 00 00 .$..........
------- Audio Control Input Terminal Descriptor -------
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal)
bTerminalID : 0x02
wTerminalType : 0x0201 (Microphone)
bAssocTerminal : 0x00
bNrChannels : 0x01 (1 channel)
wChannelConfig : 0x0001 (L)
iChannelNames : 0x00 (No String Descriptor)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 02 02 01 02 00 01 01 00 00 00 .$..........
------- Audio Control Output Terminal Descriptor ------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal)
bTerminalID : 0x06
wTerminalType : 0x0301 (Speaker)
bAssocTerminal : 0x00 (0)
bSourceID : 0x09 (9)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 09 24 03 06 01 03 00 09 00 .$.......
------- Audio Control Output Terminal Descriptor ------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal)
bTerminalID : 0x07
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00 (0)
bSourceID : 0x08 (8)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 09 24 03 07 01 01 00 08 00 .$.......
------- Audio Control Selector Unit Descriptor --------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x05 (Selector Unit)
bUnitID : 0x08
bNrInPins : 0x01 (1 pins)
baSourceID[1] : 0x0A
iSelector : 0x00 (No String Descriptor)
Data (HexDump) : 07 24 05 08 01 0A 00 .$.....
-------- Audio Control Feature Unit Descriptor --------
bLength : 0x0A (10 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit)
bUnitID : 0x09 (9)
bSourceID : 0x0F (15)
bControlSize : 0x01 (1 byte per control)
bmaControls[0] : 0x01
D0: Mute : 1
D1: Volume : 0
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
bmaControls[1] : 0x02
D0: Mute : 0
D1: Volume : 1
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
bmaControls[2] : 0x02
D0: Mute : 0
D1: Volume : 1
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 0A 24 06 09 0F 01 01 02 02 00 .$........
-------- Audio Control Feature Unit Descriptor --------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit)
bUnitID : 0x0A (10)
bSourceID : 0x02 (2)
bControlSize : 0x01 (1 byte per control)
bmaControls[0] : 0x43
D0: Mute : 1
D1: Volume : 1
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 1
D7: Delay : 0
bmaControls[1] : 0x00
D0: Mute : 0
D1: Volume : 0
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 09 24 06 0A 02 01 43 00 00 .$....C..
-------- Audio Control Feature Unit Descriptor --------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit)
bUnitID : 0x0D (13)
bSourceID : 0x02 (2)
bControlSize : 0x01 (1 byte per control)
bmaControls[0] : 0x03
D0: Mute : 1
D1: Volume : 1
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
bmaControls[1] : 0x00
D0: Mute : 0
D1: Volume : 0
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 09 24 06 0D 02 01 03 00 00 .$.......
--------- Audio Control Mixer Unit Descriptor ---------
bLength : 0x0D (13 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x04 (Mixer Unit)
bUnitID : 0x0F
bNrInPins : 0x02 (2 pins)
baSourceID[1] : 0x01
baSourceID[2] : 0x0D
bNrChannels : 0x02 (2 channels)
wChannelConfig : 0x0003 (R)
iChannelNames : 0x00 (No String Descriptor)
bmControls (HexDump) : 00 .
iMixer : 0x00 (No String Descriptor)
Data (HexDump) : 0D 24 04 0F 02 01 0D 02 03 00 00 00 00 .$...........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 01 00 00 01 02 00 00 .........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x01
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 01 01 01 01 02 00 00 .........
-------- Audio Streaming Interface Descriptor ---------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01
bTerminalLink : 0x01
bDelay : 0x01
wFormatTag : 0x0001 (PCM)
Data (HexDump) : 07 24 01 01 01 01 00 .$.....
------- Audio Streaming Format Type Descriptor --------
bLength : 0x0E (14 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bNrChannels : 0x02 (2 channels)
bSubframeSize : 0x02 (2 bytes per subframe)
bBitResolution : 0x10 (16 bits per sample)
bSamFreqType : 0x02 (supports 2 sample frequencies)
tSamFreq[1] : 0x0BB80 (48000 Hz)
tSamFreq[2] : 0x0AC44 (44100 Hz)
Data (HexDump) : 0E 24 02 01 02 02 10 02 80 BB 00 44 AC 00 .$.........D..
----------------- Endpoint Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x09 (TransferType=Isochronous SyncType=Adaptive EndpointType=Data)
wMaxPacketSize : 0x00C8 (200 bytes)
bInterval : 0x01 (1 ms)
bRefresh : 0x00
bSynchAddress : 0x00
Data (HexDump) : 09 05 01 09 C8 00 01 00 00 .........
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x01
D0 : Sampling Freq : 0x01 (supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x01 (Milliseconds)
wLockDelay : 0x0001 (1 ms)
Data (HexDump) : 07 25 01 01 01 01 00 .%.....
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 02 00 00 01 02 00 00 .........
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x01
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 02 01 01 01 02 00 00 .........
-------- Audio Streaming Interface Descriptor ---------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01
bTerminalLink : 0x07
bDelay : 0x01
wFormatTag : 0x0001 (PCM)
Data (HexDump) : 07 24 01 07 01 01 00 .$.....
------- Audio Streaming Format Type Descriptor --------
bLength : 0x0E (14 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bNrChannels : 0x01 (1 channel)
bSubframeSize : 0x02 (2 bytes per subframe)
bBitResolution : 0x10 (16 bits per sample)
bSamFreqType : 0x02 (supports 2 sample frequencies)
tSamFreq[1] : 0x0BB80 (48000 Hz)
tSamFreq[2] : 0x0AC44 (44100 Hz)
Data (HexDump) : 0E 24 02 01 01 02 10 02 80 BB 00 44 AC 00 .$.........D..
----------------- Endpoint Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x0D (TransferType=Isochronous SyncType=Synchronous EndpointType=Data)
wMaxPacketSize : 0x0064 (100 bytes)
bInterval : 0x01 (1 ms)
bRefresh : 0x00
bSynchAddress : 0x00
Data (HexDump) : 09 05 82 0D 64 00 01 00 00 ....d....
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x01
D0 : Sampling Freq : 0x01 (supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0000
Data (HexDump) : 07 25 01 01 00 00 00 .%.....
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x03
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID - Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 03 00 01 03 00 00 00 .........
------------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0100 (HID Version 1.00)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Data (HexDump) : 09 21 00 01 00 01 22 3C 00 .!...."<.
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x003C (60 bytes)
Error reading descriptor : ERROR_INVALID_PARAMETER (due to a obscure limitation of the Win32 USB API, see UsbTreeView.txt)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x87 (Direction=IN EndpointID=7)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x02 (2 ms)
Data (HexDump) : 07 05 87 03 04 00 02 .......
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Data (HexDump) : 04 03 09 04 ....
------ String Descriptor 1 ------
bLength : 0x3E (62 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "C-Media Electronics Inc.°°°°°°" *!*ERROR contains 6 NULL characters
Data (HexDump) : 3E 03 43 00 2D 00 4D 00 65 00 64 00 69 00 61 00 >.C.-.M.e.d.i.a.
20 00 45 00 6C 00 65 00 63 00 74 00 72 00 6F 00 .E.l.e.c.t.r.o.
6E 00 69 00 63 00 73 00 20 00 49 00 6E 00 63 00 n.i.c.s. .I.n.c.
2E 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............
------ String Descriptor 2 ------
bLength : 0x3E (62 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "USB Audio Device°°°°°°°°°°°°°°" *!*ERROR contains 14 NULL characters
Data (HexDump) : 3E 03 55 00 53 00 42 00 20 00 41 00 75 00 64 00 >.U.S.B. .A.u.d.
69 00 6F 00 20 00 44 00 65 00 76 00 69 00 63 00 i.o. .D.e.v.i.c.
65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............