C# WMI查询PNP_实体的父级/子级

C# WMI查询PNP_实体的父级/子级,c#,usb,wmi,C#,Usb,Wmi,我目前正在开发一个程序,以检查是否在C#中的特定USB集线器上检测到USB设备。我知道集线器和连接到集线器的从设备的PID和VID。 我使用ManagementObjectSearcher查询来获取设备: ManagementObjectSearcher USBSearchQuery = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE \"%VID_17E

我目前正在开发一个程序,以检查是否在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设备。当我使用设备管理器进行检查时,我看到了元素并可以访问属性父级,但似乎不可能通过WMI查询获取对象的父级或子级

我可以通过集线器的子设备或设备的父设备来实现这一点。你们有谁知道怎么做吗

ManagementObjectCollection DeviceCollection = USBSearchQuery .Get();
foreach (ManagementObject mo in DeviceCollection )
    {
      //get all properties 
      //ex: mo.Properties["Description"].Value represents the friendly name of the device
      //mo.Properties["PNPClass"].Value represents the parent class of the device
    }