zjclwt
驱动牛犊
驱动牛犊
  • 注册日期2003-10-17
  • 最后登录2011-04-20
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望102点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1898回复:3

Win 7 下USB问题

楼主#
更多 发布于:2010-11-12 09:51
Win7 32位操作系统下,我的USB设备在工作过程中,意外拔掉USBl连接线后DebugView显示驱动仍在运行,应用程序调用DeviceIoControl后一直阻塞,无法关闭。
同样的驱动程序在XP系统上拔掉USB连接线,DeviceIoControl函数能返回,应用程序能正常关闭。
各位说说这是怎么回事啊?
fanzi
驱动小牛
驱动小牛
  • 注册日期2004-12-09
  • 最后登录2013-12-19
  • 粉丝1
  • 关注0
  • 积分1004分
  • 威望754点
  • 贡献值0点
  • 好评度93点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-11-12 11:00
阻塞说明尚有IRP没有完成,策略有很多。你可以做个定时器,超时后调用IoCancelIRP,当然你也要自己写个Cancel的完成例程。

------------------------------------------------------------------
欢迎访问 帆子内核驱动网
bbs.kerneldev.com
张帆的内核学习论坛 http://bbs.kerneldev.com
zjclwt
驱动牛犊
驱动牛犊
  • 注册日期2003-10-17
  • 最后登录2011-04-20
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望102点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-11-12 11:34
那为什么XP下是正常的呢,WIN7上不同吗?
fanzi
驱动小牛
驱动小牛
  • 注册日期2004-12-09
  • 最后登录2013-12-19
  • 粉丝1
  • 关注0
  • 积分1004分
  • 威望754点
  • 贡献值0点
  • 好评度93点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-11-12 17:38
理论上应该是可以使用的,但很多情况下是你驱动没写好。你安装个IRPTrace,看一眼,是否有pending的IRP。

欢迎到http://bbs.kerneldev.com/上讨论
张帆的内核学习论坛 http://bbs.kerneldev.com
游客

返回顶部