C# 获取设备管理器USB设备通过“位置路径”和“设备描述”获取“父系”PNPDeviceID

例如,ADB设备,
1、设备描述为Android Composite ADB Interface(固定值);
2、位置路径为PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(2)#USB(2)(根据USB接口固定值);
3、父系”PNPDeviceID :USB\VID_05C6&PID_90B8\9a1a7a21(根据连接的设备变动)
要求通过1和2获取到3。
网上找了很多方法都不完全,没有将三者关联到一起,帮帮忙,感谢。
图片说明

http://www.jb51.net/article/98712.htm

http://blog.csdn.net/ericwuhk/article/details/79226505 我的博客里有类库供参考。