jarod_jy
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2012-06-17
  • 粉丝0
  • 关注0
  • 积分332分
  • 威望35点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:1176回复:3

句柄打开时拨插USB设备,closehandle后再打开设备失败的问题

楼主#
更多 发布于:2007-02-27 11:14
  做了一个usb设备的驱动程序,在应用程序还持有usb设备对象句柄的情况下(此时已没有i/o操作),拔掉usb设备,然后再插上usb设备,closehandle设备对象句柄,当再次打开设备时失败。经过分析,再次打开设备时,枚举不到设备,但此时驱动已经加载(可通过bus hound对通道发送命令),只是没有设备对象(在closehandle时被删掉了)。在论坛上找了一个解决方法:CreateFile();然后相应的IO操作;CloseFile()。我觉得这个方法不是很好,不知道谁有更好的解决方法?
耕一块贫瘠的土地
遵守规则
驱动牛犊
驱动牛犊
  • 注册日期2006-06-03
  • 最后登录2007-12-27
  • 粉丝0
  • 关注0
  • 积分330分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-01 09:15
我看问题应该还在驱动里,重新插入时应该生成一个新设备对象,原来的那个设备对象在CloseHandle后被删除,但新设备对象应该可以工作,你看看你的AddDevice例程是如何工作的吧
谁不遵守规则,规则就会惩罚他,迟早的事
jarod_jy
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2012-06-17
  • 粉丝0
  • 关注0
  • 积分332分
  • 威望35点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-01 16:37
我看过AddDevice例程,当我未打开设备时,驱动都能正常工作,但设备打开后拔插usb设备就会出现上面的问题,再拔插一次又恢复正常
耕一块贫瘠的土地
jarod_jy
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2012-06-17
  • 粉丝0
  • 关注0
  • 积分332分
  • 威望35点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-02 11:02
这个问题与下面两个帖子中说的问题一样,那位大牛看看吧,说说解决方法。
http://bbs.driverdevelop.com/htm_data/9/0109/3539.html
http://bbs.driverdevelop.com/read.php?tid-87539.html
耕一块贫瘠的土地
游客

返回顶部