he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3934回复:6

调用KeWaitForSingleObject出现BugCheck(B8) ATTEMPTED_SWITCH_FROM_DPC?

楼主#
更多 发布于:2003-09-20 13:07
我调用KeWaitForSingleObject时出现,BugCheck(B8) ATTEMPTED_SWITCH_FROM_DPC,我在完成例程中设了断点,出错时还没经过完成例程,大概是怎么回事???百思不得其解


救我啊
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-23 09:04
如何降低IRQL级别?用KeLowerIrql吗?
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
piggy
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2012-01-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-09-22 22:54
你不能在DISPATCH_LEVEL调用KeWaitForSingleObject()。去看看DDK文档。
he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-22 09:35
OH,SORRY,最后一个参数我设置的是NULL,表示的是无限等待,我弄错了,

不过,我设置了断点,也打了断言,在那里的确是DISPATCH_LEVEL,不过任出错,不知是怎么回事,
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
slough
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2004-07-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-09-22 09:09
我的TIMEOUT是0,我的流程是让完成例程中的KeSetEvent来中止KeWaitForSingleObject的等待


如果是等待事件而不是超时的话, TIMEOUT不应该是0, 而应该是无穷吧?
所有心情在零下30度冻结……
he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-20 13:24
对啊,我的TIMEOUT是0,我的流程是让完成例程中的KeSetEvent来中止KeWaitForSingleObject的等待,可还没到完成例程(我设了断点的),等待就出错了
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
piggy
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2012-01-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-09-20 13:16
KeWaitForSingleObject只能运行在PASSIVE_LEVEL,除非你把TIMEOUT设为0。 检查一下发生BugCheck时的IRQL
游客

返回顶部