什么会导致 USB 设备在注册表中具有相同设备的双重条目?
“9&”后面的数字是如何派生的(见下文),即 3406C40F 和 2D6B958A,以防这暗示了导致此问题的原因。
我的猜测是,设备在枚举期间可能会以不同的方式报告自身,可能是不同的配置和/或设备描述符。
导致此问题的测试的详细信息:我正在运行 USB 插拔枚举测试,每次插入设备时,我都会验证各种事情以确保枚举正确。此循环重复 1000 次。这是一个开发测试。
枚举后,测试使用 devcon.exe 来验证有关集合的一些内容。由于某种未知的原因,在进行了一些枚举之后,与集合相关的数字正在发生变化。进一步的调查显示,对于具有相同编号的同一设备,注册表中似乎有两个条目。
\9&3406C40F 是与每个集合相关的测试开始时的数字
一段时间后,经过数百次枚举,它发生了变化,在这种情况下为
\9&2D6B958A
初始枚举 2020-09-18 16:09:22,066 主要信息 =========> devcon.exe "find HID"\vid_047F* <=========
HID\VID_047F&PID_015D&MI_03&COL05\9& 3406C40F &0&0004 : HID-compliant device HID\VID_047F&PID_015D&MI_03&COL01\9& 3406C40F &0&0000 : HID-compliant device HID\VID_047F&PID_015D&MI_03&COL02\9& 3406C40F &0&0001 : HID-compliant device HID\VID_047F&PID_015D&MI_03&COL03\9& 3406C40F &0&0002 : HID-compliant consumer control device
HID\VID_047F&PID_015D&MI_03&COL04\9& 3406C40F &0&0003 : HID 兼容设备
数百次枚举之后,
HID\VID_047F&PID_015D&MI_03&COL01\9& 2D6B958A &0&0000 :HID-compliant device HID\VID_047F&PID_015D&MI_03&COL02\9& 2D6B958A &0&0001 :HID-compliant device HID\VID_047F&PID_015D&MI_03&COL03\9& 2D6B958A &0&0002 :HID-compliant consumer control device
HID\VID_047F&PID_015D&MI_03&COL04\9& 2D6B958A &0&0003 :HID-compliant device HID\VID_047F&PID_015D&MI_03&COL05\9& 2D6B958A &0&0004 :HID 兼容设备
我已经在其他设备上运行了这个测试数百万次,但我以前从未见过这个问题。它发生在win7和win10上。
任何帮助将不胜感激!谢谢!