如果这和之前的问题类似,我很抱歉,但这是我刚刚注意到的。 我可以检测我的设备何时连接到系统(通过USB)并正确捕获消息,但是如果我拔下并插回设备,尝试通过 CreateFile() 函数始终返回错误: 错误\发电机故障31(0x1F) 也就是说- 连接到系统的设备不工作 但是,在收到 DBT设备竞争对手 消息 microsoft's 自己的定义说 设备或介质已插入,现在可用 “。我相信这里所发生的错误更多地与设备未准备就绪有关,即使报告为已准备就绪,因为如果我再次枚举系统上的设备列表,则设备已准备就绪。有没有其他人遇到过这个问题?或者有什么东西我遗漏了/忽略了?
处理这个问题的最简单方法是通过wmi。
请参见这里: http://dotnetslackers.com/community/blogs/basharkokash/archive/2008/02/06/usb-port-insert-remove-detection-using-wmi.aspx
我以前用过wmi来检测USB驱动器,它非常简单,回调让事情变得非常干净。