我有两个 USB 设备 ID,例如USB\VID_E4F1&PID_0661\00000115FA9CE7750000000000000000
和 USB\VID_E4F1&PID_0661&MI_00\7&B5A5DDF&0&0000
如何验证设备 #2 是设备 #1 的直接子设备(物理上它们是同一 USB 复合设备的不同部分)?
在现实生活中,很多设备都连接到同一个 USB Controller 。此外,它们可能属于同一制造商和型号。这就是为什么我无法验证 VID、PID 并使用 Win32_USBControllerDevice
WMI 查询来验证它们是否插入了同一个 USB Controller - 我需要以某种方式验证父子关系,而不仅仅是它们的事实'插入同一个 Controller 。
如果重要的话,我只需要支持 Windows 8+。
最佳答案
PnP Configuration Manager API是你的 friend 吗:
CM_Locate_DevNode打开给定设备 ID 的设备句柄;
CM_Get_Parent找到父设备;
CM_Get_Device_ID_Size和 CM_Get_Device_ID获取设备句柄并返回设备 ID。
关于c# - 获取父设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26008751/