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

标签 windows visual-studio visual-c++ usb cdc

简而言之:我需要通过 PID/VID 检测我的 USB CDC 设备的热插拔事件,并获取由 Windows 在 Visual C++ 中创建的相应虚拟 COM 端口,最后创建一个 dll .

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

现在,据我所知,我需要获取插入的 USB 设备列表,遍历它并使用我的 PID/VID 过滤掉设备?我假设我随后能够获得有关设备的更多信息,包括 COM 端口?

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

只要它起作用,我就会在 http://github.com/vinzenzweber/USBEventHandler 上开源它. Mac 版本已经可用!

最佳答案

在 msdn 上挖掘了大量无用的文档并进行了一些调试后,我发现了缺失的链接:setupapi.h 中的 SetupDi 调用:更多信息以及适用于 Mac 和 Windows 的源代码可以在我的 USBEventHandler 项目中找到 github.com包含适用于 Mac 和 Windows 的源代码。

关于windows - 如何在 Visual C++ 中列出所有连接的 USB 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2735920/

相关文章:

c++ - C++基本内容。什么东西少了???不可能那么明显

c++ - 偏移量在生成dmp时意味着什么剂量

linux - 在 Windows 中显示 linux 终端颜色

windows - Windows下的X11转发?

.net - 使用 VS 解决方案的 git 子模块时如何解析 nuget 包

visual-studio - Visual Studio 2017 在为发布构建时不会编译对代码的小改动

windows - 在 Windows 中运行 .bat 文件是否会生成任何系统日志?

c++ - Boost 1.55 不适用于 Visual Studio 2013

visual-studio - Visual Studio - 突然无法调试测试

visual-studio - 获取 vc++ 2010 代码以在 ubuntu 上编译