我正在开发一个使用C#编写的程序,用于检测USB设备是否在特定的USB集线器上被检测到。我知道集线器和连接到集线器上的从设备的PID和VID。 我通过使用ManagementObjectSearcher查询来获取设备信息:
ManagementObjectSearcher USBSearchQuery = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE \"%VID_17EF&PID_6019%\"");
ManagementObjectCollection DeviceCollection = USBSearchQuery.Get();
这很好用。ManagementObjectCollection DeviceCollection包含2个元素。一个是HID设备,另一个是USB设备。当我检查设备管理器时,可以看到这些元素并访问Parent属性,但似乎不可能通过WMI查询获取对象的父级或子级。
我可以通过集线器的子级或设备的父级来实现这一点。你们有没有想法如何做到这一点?