jun2wu
驱动牛犊
驱动牛犊
  • 注册日期2002-07-04
  • 最后登录2006-04-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1269回复:2

如何解决此问题?

楼主#
更多 发布于:2002-07-09 12:27
各位大侠,

在应用程序中用CreateFile打开USB设备后,在调用CloseHandle之前,将USB设备拔出,此时,如果将USB设备插回原来的USB口,再调用CreateFile就不能够打开此设备了,出错信息为:找不到指定的文件(0x00000002)。

请问,在不退出应用程序的情况下,如何才能够使后一次CreateFile成功?

谢谢各位!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-09 13:12
肯定是你的驱动程序没有卸载干净。这个问题比较复杂,主要注意两点:
1、取消或完成所有IRP;
2、正确从设备栈卸载你的驱动程序;
你可以借鉴ISOUSB或BULKUSB例子中关于IRP_MN_REMOVE_DEVICE的处理方法。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
jun2wu
驱动牛犊
驱动牛犊
  • 注册日期2002-07-04
  • 最后登录2006-04-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-10 09:32
我开发驱动所用的工具是DriverWorks. DriverWorks的框架应该帮助我完成了以上两项工作。而且在CreateFile之后调用CloseHandle,然后再调用CreateFile就能够成功。
游客

返回顶部