Question

What is the best way to scan the local Windows system for attached USB devices using C++? I need to get a list of Vendor and Product IDs to match against the my device's IDs. If there is a way to scan for a specific VID/PID combination, that would be even better. My end goal is to retrieve the virtual COM port Windows has assigned to the device. If there's a way to do all that, it would be fantastic. As always, examples are much appreciated. Thanks.

Was it helpful?

Solution 2

I was able to resolve this by querying WMI for the needed information. Basically, I was able to start with Microsoft's example code, modify it a bit, and finally build it into my own class that does what I need.

http://msdn.microsoft.com/en-us/library/aa390423%28v=VS.85%29.aspx

This list of Computer System Hardware Classes was also helpful:

http://msdn.microsoft.com/en-us/library/aa389273%28v=VS.85%29.aspx

I used the WMI Code Creator to preview the results of what looked to be promising classes.

In the end I used the following:

  • Namespace: root\CIMV2
  • Class: Win32_SerialPort
  • Property: PNPDeviceID and DeviceID

OTHER TIPS

This is pretty much an MSDN example of what you want:

http://msdn.microsoft.com/en-us/library/ff558728%28VS.85%29.aspx

It seems you'll need the WDK if you want to access this kind of functionality (every MSDN search I can think of suggests this).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top