我正在开发一个 .NET 4.5 C# 项目,我需要确定我的 USB 设备是否连接到同一个 USB 集线器。
我用谷歌搜索并尝试探索许多 ManagementObjectCollection 的结构,例如 Win32_USBHub 和 Win32_PnPEntity,但我找不到任何具有位置或端口链信息的 WMI 结构。
我尝试了 USB 设备树工具,我可以在其中看到信息:
Device: 1
Location IDs : PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(3)#USB(1)
Device: 2
Location IDs : PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(3)#USB(2)
现在根据上述信息,我想编写逻辑来存储和比较两个 ID,以识别两个设备是否在同一个 USB 集线器上。
我尝试从以下网址探索 USB 设备树源代码: http ://www.uwe-sieber.de/usbtreeview_e.html
但是由于 NativeUsbLib 中的一些问题,仍然无法运行代码。
谁能帮我分享一些示例代码,我如何从 WMI 或 setupapi.dll 获取这些信息?