Windows下USB设备有效序列号iSerialNumber的判断标准
2021-05-11
2267
0
USB设备的序列号是通过主机向USB设备获取USB设备的字符串描述符获取的,字符串的的索引存储在USB设备管理器中的iSerialNumber字段中,该字段的长度为一个字节,大小为0-255。
USB 设备描述符的 iSerialNumber 字段指示设备是否具有序列号以及该数字的存储位置,如下所示:
- iSerialNumber == 0x00 :USB 设备没有序列号。
- iSerialNumber != 0x00:USB 设备具有序列号。 分配给 iSerialNumber 的值是序列号的字符串索引。
如果设备具有序列号,则序列号必须唯一标识同一设备的每个实例。
例如,如果两个设备描述符的 “idVendor”、” idProduct” 和 “bcdDevice” 字段的值相同,则 iSerialNumber 字段必须不同,以便将一台设备与另一台设备区分开来。
Windows即插即用管理器要求 USB 序列号中的每个字节都有效。 如果单个字节无效,Windows 会丢弃序列号,并将设备视为不具有序列号。 对于 USB 序列号,以下字节值无效:
- 0x2C.(说明,该值的ASSIIC为逗号)
- 小于0x20 的值。(说明,0x20该值的ASSIIC为空格)
- 大于0x7F 的值。(说明,0x7f该值的ASSIIC为DEL)
必须为可见有有效字符。
附ASSIIC码图:
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936