USB百科
+ -

USB字符串描述符iProduct

2023-07-20 631 0

USB固件上报给主机的描述符信息一部分是给机器看的,另一部分就是给人看的,也主是所谓的屏显。
USB字符串描述符指明了USB设备显示的信息,但是在USB规范定义的众名描述符中,几乎人手一份字符串描述符。面对如此众多的字符串描述符,通常系统显示设备的信息会从该字符串描述符中选择出一个比较能代表该设备的字符串描述符。一般情况下这个幸运儿就是设备描述符中的iProduct。

这里我们可选择一些常用设备显示:

UAC音频设备:

UAC音频设备

    ---------------------- Device Descriptor ----------------------
bLength                  : 0x12 (18 bytes)
bDescriptorType          : 0x01 (Device Descriptor)
bcdUSB                   : 0x200 (USB Version 2.0) -> but device is Full-Speed only
bDeviceClass             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x40 (64 bytes)
idVendor                 : 0x12D1 (Huawei Technologies Co., Ltd.)
idProduct                : 0x3A07
bcdDevice                : 0x0100
iManufacturer            : 0x01 (String Descriptor 1)
 Language 0x0409         : "bestechnic"
iProduct                 : 0x02 (String Descriptor 2)
 Language 0x0409         : "HUAWEI USB-C HEADSET"
iSerialNumber            : 0x03 (String Descriptor 3)
 Language 0x0409         : "029000"
bNumConfigurations       : 0x01 (1 Configuration)
Data (HexDump)           : 12 01 00 02 00 00 00 40 D1 12 07 3A 00 01 01 02   .......@...:....
                           03 01                                             ..

UVC相机

UVC相机

    ---------------------- Device Descriptor ----------------------
bLength                  : 0x12 (18 bytes)
bDescriptorType          : 0x01 (Device Descriptor)
bcdUSB                   : 0x201 (USB Version 2.0.1)
bDeviceClass             : 0xEF (Miscellaneous)
bDeviceSubClass          : 0x02
bDeviceProtocol          : 0x01 (IAD - Interface Association Descriptor)
bMaxPacketSize0          : 0x40 (64 bytes)
idVendor                 : 0x0C45 (Sonix Technology Co., Ltd.)
idProduct                : 0x671E
bcdDevice                : 0x8502
iManufacturer            : 0x02 (String Descriptor 2)
iProduct                 : 0x01 (String Descriptor 1)
iSerialNumber            : 0x00 (No String Descriptor)
bNumConfigurations       : 0x01 (1 Configuration)
Data (HexDump)           : 12 01 01 02 EF 02 01 40 45 0C 1E 67 02 85 02 01   .......@E..g....
                           00 01                                             ..

这里USBTreeViewer并没有显示出字符串内容,其实我们可以通过2种方法来获取。
第一种就是插拔设备,肯定会获取一次。
第二种是通过BUSHOUND的自定义命令手动发送获取。注意这里一定要让相机工作起来。因为其不工作时电源状态为S3.
BUSHOUND

鼠标键盘HID

HID设备无论写什么,系统都会使用其系统的根节点字符串“USB 输入设备”,其根据子节点根据设备类型不同会有几种,一般有:

  • HID-compliant mouse
  • HID-compliant vendor-defined device
  • HID-compliant touch screen
  • HID-compliant consumer control device
  • HID-compliant system controller
  • HID Keyboard Device
  • Remote Desktop Keyboard Device
  • Remote Desktop Mouse Device
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB 字符串描述符
字符串描述符是可选的.如果不支持字符串描述符,其设备描述符,配置描述符,接口描述符内的所有字符串描述符索引都必须为0.字符串描述符的功能USB规范中定义了大量的标识,而这些标识都是以十六进制显示的,这个机器来说是很方便的,但对于人来说,就比较麻烦了。总不能看到一个数值标识就去查表吧,当然这对于熟练......
USB-UAC麦克风 字符串描述符
偏移地址字段长度值描述0bLength10x18描述符长度1bDescriptorType10x03描述符类型:字符串描述符2bString10x00540x00480x00450x00200x00430x004F0x004D0x00500x00410x004E0x0059“THE COMPANY”......
华为UAC耳机 字符串描述符
字符串描述符 -------------------- String Descriptors ------------------- ------ String Descriptor 0 ------bLength : 0x04 (......
HID报表描述符与设备描述符、配置描述符、字符串描述符的通讯格式对比
报表描述符是USB HID规范中一个很重要的概念。USB HID设备报表描述符内容表述了该HID设备的功能及数据传输的格式。USB HID报表描述符在概念上和设备描述符,配置描述符,接口描述符,端点描述符和其它USB设备描述符类似,但是还是有一些细微的区别。我里我们做一个简要的区别:设备描述符、......
USB设备语言ID-索引为0的字符串索引
对于如设备描描述符等相关的描述符,都会有一些字符串索引。主机通过GET_DESCRIPTOR获取对应的字符串索引内容,可以获取这些关于设备的一些描述符信息。如对于设备描述符的iManufacturer,iProduct和iSerialNumber。我们又知道,当对于某些设备没有与之对应的字符串时,......
Teams UCQ字符串描述符
UCQ描述符全称Unified Communications Qualification (UCQ) descriptor。是由 telephony HID device发向商用Skype一组字段,用于表明设备支持的功能。要求:设备应支持UCQ描述符,以告知Skype for Business其独......
Hid.dll获取字符串函数实现
Hid.dll中获取字符串的函数包括以下:HidD_GetProductStringHidD_GetManufacturerStringHidD_GetSerialNumberStringHidD_GetIndexedString这些函数分别通过不同的IOCTL来与HIDCLAS.SYS进行通......
STM32F407的USB获取描述符请求回调函数USBD_DEVICE
STM32F407的USB获取描述符请求回调函数使用结构体USBD_DEVICE来整合。typedef struct _Device_TypeDef{ uint8_t *(*GetDeviceDescriptor)( uint8_t speed , uint16_t *length); ......
USB字符串描述符iProduct
USB固件上报给主机的描述符信息一部分是给机器看的,另一部分就是给人看的,也主是所谓的屏显。USB字符串描述符指明了USB设备显示的信息,但是在USB规范定义的众名描述符中,几乎人手一份字符串描述符。面对如此众多的字符串描述符,通常系统显示设备的信息会从该字符串描述符中选择出一个比较能代表该设备的字......
USBTreeViewer获取字节串描述符
缘由在于自己虚拟了一个USB控制器集线器,故在使用USBTreeViewer查看其USB集线器下的设备信息时,字节串描述符的问题解决。USB的开发人员肯定对USBTreeViewer这个工具不陌生,我们使用它来查看电脑中USB设备的相关信息。例如设备的连接信息,USB设备描述符,USB配置描述......
UAC虚拟音频设备字符串描述符引起的设备启动失败10
半拉子工程,又开始搞起。重新修改代码,在驱动中测试创建一个UVC相机,一个自定义HID设备,一个UAC麦克风,一个UAC扬声器。不过UAC设备都启动失败了。别外UVC相机的名字也不是自己定指的名字。如对于UAC扬声器设备指定的为: WCHAR strManufacturer[] = { L......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!