0

如果这与之前的问题相似,我很抱歉,但这是我刚刚注意到的。我可以检测到我的设备何时连接到系统(通过 USB)并正确捕获消息但是如果我拔下并重新插入设备,尝试通过CreateFile()函数访问设备总是返回错误:ERROR_GEN_FAILURE 31 (0x1F )转换为 -连接到系统的设备无法运行,但是,这是在收到DBT_DEVICEARRIVAL消息尝试“。我相信这里发生的情况是,即使报告为已准备好,该错误也与设备未准备就绪有关,因为如果我再次重新枚举系统上的设备列表,则设备已准备就绪。有还有其他人遇到并解决了这个问题吗?或者有什么我遗漏/忽略的东西吗?

4

1 回答 1

0

IMO 处理这个问题的最简单方法是通过 WMI。

见这里:http ://dotnetslackers.com/community/blogs/basharkokash/archive/2008/02/06/usb-port-insert-remove-detection-using-wmi.aspx

我过去曾使用 WMI 进行 USB 驱动器检测,它非常简单,回调使事情变得非常干净

于 2010-08-04T19:42:18.833 回答