mycookie
驱动小牛
驱动小牛
  • 注册日期2002-12-09
  • 最后登录2010-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1139回复:5

(急)如何避免直接拔出设备引起的死机问题

楼主#
更多 发布于:2003-07-23 16:43
我编写的USB设备驱动在正常情况下运行的很好,但如果在传输数据的时候突然把设备拔出(非法操作),一定会出现PAGE FAULT问题。我跟踪了一下原代码,发现拔除设备后系统直接发送remove device irp,但驱动程序仍然在内存中。继续发送数据还会调用驱动程序。请问高手该如何避免这种非法操作(没法老板逼着解决这个问题)
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-24 10:53
你的驱动程序有严重错误。
ysr
ysr
驱动牛犊
驱动牛犊
  • 注册日期2001-05-11
  • 最后登录2015-01-29
  • 粉丝0
  • 关注0
  • 积分79分
  • 威望48点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-24 16:18
处理相应的PNP IRP
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝1
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-25 08:59
remove device irp要做相应的处理。
当热插拔数设备时,你的读写设备的 IRP 就会返回错误,这你也要仔细的处理。其实这些都属于异常处理的问题。
你的认可是对我最大的鼓励!
mycookie
驱动小牛
驱动小牛
  • 注册日期2002-12-09
  • 最后登录2010-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-25 10:29
能否讲的详细点?
remove device irp要做如何相应的处理。
如何处理异常处理,或告诉我在哪里有资料?谢谢!

dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-25 12:55
remove device irp里应当delete device(IoDeleteDevice),当调用了IoDeleteDevice后,设置DeviceObject为空(NULL);在驱动里的需要DeviceObject的地方都要判断DeviceObject是否为空(== NULL)

[编辑 -  7/25/03 by  dazzy]
游客

返回顶部