如何在Visual C++中列出所有连接的USB设备

3
简而言之:我需要在Visual C++中检测我的USB CDC设备的PID / VID的热插拔事件,并获取Windows创建的相应虚拟COM端口,最终创建一个dll。
我有一个USB CDC设备,需要在Windows上连接/断开连接时得到通知。 我的方法是使用RegisterDeviceNotification和一个“不可见”窗口来接收WM_DEVICECHANGE通知。 到目前为止,这部分工作已经完成。
现在,据我所知,我需要获取已插入的USB设备列表,对其进行迭代并过滤出具有我的PID / VID的设备? 我认为我随后能够获取有关设备的更多信息,包括COM端口?
实现我的目标的唯一方法是使用setupapi.h中的SetupDi调用吗? 使用WDK / DDK是实现我的目标的唯一方法吗?
一旦这个工作正常,我会在GitHub上开源它(http://github.com/vinzenzweber/USBEventHandler)。 Mac版本已经可以使用!
1个回答

5

在浏览了大量无用的MSDN文档和进行了一些调试后,我找到了缺失的链接:setupapi.h中的SetupDi调用。您可以在我的USBEventHandler项目中找到更多信息以及Mac和Windows的源代码,网址为github.com


在这里找到了该项目的链接:https://github.com/jiango/USBEventHandler - vinzenzweber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接