我可以使用 win32 Setup API 来检测 USB 设备何时插入或拔出吗?

Posted

技术标签:

【中文标题】我可以使用 win32 Setup API 来检测 USB 设备何时插入或拔出吗?【英文标题】:Can I use the win32 Setup API to detect when USB devices have been plugged-in or unplugged? 【发布时间】:2014-05-07 18:48:22 【问题描述】:

我正在查看http://msdn.microsoft.com/en-us/library/aa376947(v=vs.85).aspx(设置 API 参考)和http://msdn.microsoft.com/en-us/library/windows/hardware/ff549791(v=vs.85).aspx(驱动设置 API 参考)的参考资料,但我没有看到一个函数可以让我注册一个在特定的设备/硬件 ID/驱动程序密钥/或出现的任何内容。

有人知道我会怎么做吗?理想情况下,我想在用户空间进行这种检测,但如果有必要,我可以在内核空间进行检测。

【问题讨论】:

RegisterDeviceNotification 谢谢!将此作为答案发布,我很乐意授予 *** 业力。 复制a dozen times over。 How to Trigger an event when usb is plugged的可能重复 【参考方案1】:

对于通常感兴趣的通知(例如已插入新磁盘卷),Windows 会自动向所有*** Windows 广播 WM_DEVICECHANGE 消息。您无需注册。

对于未自动发送的通知,您可以使用RegisterDeviceNotification 来请求它们。

【讨论】:

以上是关于我可以使用 win32 Setup API 来检测 USB 设备何时插入或拔出吗?的主要内容,如果未能解决你的问题,请参考以下文章

libusb-win32 支持win10吗

使用 Win32 API 时,要使用哪些数据类型?

使用 Win32 API 安全删除 USB 驱动器?

win32API多线程编程

win32 c++ 在没有子类化的编辑控件中检测“输入”?

游戏更新就出现发生致命错误Win32Error怎么回事