zzyheart
驱动牛犊
驱动牛犊
  • 注册日期2007-03-15
  • 最后登录2008-07-04
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:2944回复:4

PsCreateThread创建的线程是不是能够保证PASSIVE_LEVEL

楼主#
更多 发布于:2007-07-05 09:50
在DispathWrite或者AddDevice函数中如果用PsCreateThread创建一个新的线程 能不能保证它的IRQL一直是PASSIVE_LEVEL呢?
或者我在DispathWrite中如果直接用KeLowerIrql(0)将其降到PASSIVE_LEVEL,做完工作之后再将他回到原来的Irql,这样会不会有什么问题...?
Delphips
驱动小牛
驱动小牛
  • 注册日期2003-11-10
  • 最后登录2011-02-21
  • 粉丝1
  • 关注1
  • 积分-363分
  • 威望168点
  • 贡献值0点
  • 好评度151点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-05 10:07
其实workitem也挺好用的
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
板凳#
发布于:2007-07-05 10:36
PsCreateSystemThread创建的线程运行在PASSIVE_LEVEL,只要你不去改变它的IRQL。
KeLowerIrql 是用来回复被KeRaiseIrql提升的IRQL的,不要用 KeLowerIrql 去降低IRQL,这可能会引起错误
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
ghb912
驱动牛犊
驱动牛犊
  • 注册日期2009-11-01
  • 最后登录2011-04-27
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望201点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-07-29 13:14
不能通过KeLowerIrql(0)的方式来降低级别, 会出问题, 用workitem很方便
hyyh619
驱动牛犊
驱动牛犊
  • 注册日期2003-03-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-08-11 15:55
其实WorkItem也是通过System Thread来实现的。哈哈哈。
游客

返回顶部