如何在Visual C+中列出所有连接的USB设备+; >我需要通过PID / VID检测USB CDC设备的热插拔事件,得到Visual C++中由Windows创建的相应虚拟COM端口,最后创建DLL。

如何在Visual C+中列出所有连接的USB设备+; >我需要通过PID / VID检测USB CDC设备的热插拔事件,得到Visual C++中由Windows创建的相应虚拟COM端口,最后创建DLL。,windows,visual-studio,visual-c++,usb,cdc,Windows,Visual Studio,Visual C++,Usb,Cdc,我有一个USB CDC设备,在Windows上连接/断开连接时需要通知我。我的方法是使用RegisterDeviceNotification和一个“不可见”窗口来接收WM_DEVICECHANGE通知。到目前为止,这部分工作正常 现在,据我所知,我需要获得已插入的USB设备列表,对其进行迭代,并使用我的PID/VID过滤掉这些设备?我假设我能够获得更多关于设备的信息,包括COM端口 在setupapi.h中使用SetupDi调用是实现我的目标的唯一方法吗?使用WDK/DDK是实现我的目标的唯一方

我有一个USB CDC设备,在Windows上连接/断开连接时需要通知我。我的方法是使用
RegisterDeviceNotification
和一个“不可见”窗口来接收
WM_DEVICECHANGE
通知。到目前为止,这部分工作正常

现在,据我所知,我需要获得已插入的USB设备列表,对其进行迭代,并使用我的PID/VID过滤掉这些设备?我假设我能够获得更多关于设备的信息,包括COM端口

setupapi.h
中使用
SetupDi
调用是实现我的目标的唯一方法吗?使用WDK/DDK是实现我的目标的唯一方法吗


这一点一开始奏效,我就把它开源了。Mac版本已经可用

在msdn上翻阅了大量无用的文档并进行了一些调试之后,我找到了缺少的链接:setupapi中的SetupDi调用。h:更多信息以及Mac和Windows的源代码可以在我的USBEventHandler项目中找到,该项目位于Mac和Windows的sources中。

在以下链接下找到该项目: