如何检测连接到系统的设备何时可以使用?

时间:2010-08-04 15:38:55

标签: c# windows-7 device hid

如果这与之前的问题类似,我很抱歉,但这是我刚注意到的。 我可以检测到我的设备何时连接到系统(通过usb)并正确捕获消息但是如果我拔下并插回设备,尝试通过CreateFile()功能访问设备总是会返回错误: ERROR_GEN_FAILURE 31(0x1F),转换为 - 连接到系统的设备无法正常运行,然而,在收到 DBT_DEVICEARRIVAL 消息后,尝试通过microsoft's自己的定义是“已插入设备或介质,现已可用”。我相信这里发生的事情是错误更多地与设备没有准备就绪,即使它已经报告准备就绪,因为如果我再次枚举系统上的设备列表,设备就准备好了。有没有其他人遇到过这个问题?或者有什么我想丢失/忽视?

1 个答案:

答案 0 :(得分:0)

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

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

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