Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1236回复:2

关于Vxd的运行级别――急!!!

楼主#
更多 发布于:2001-08-13 19:30
请问在Vxd中又没有类似于NdisMSynchronizeWithInterrupt 这种提升IRQL,以免被指定的中断打断的函数呀?

还有Vxd一般运行于在什么IRQL级别上?
DISPATCH 的级别一般是 2
可我用 Get_Thread_Win32_Pri取得的线程优先级怎么都是8呀?



<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-14 21:00
VXD通常在PASSIVE_LEVEL级运行,在分发例程中,提升到DISPATCH_LEVEL级运行。
在DDK中,KeRaiseIrql可以提升IRQL级。
穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-15 13:41

KeRaiseIrql是给WDM提供的函数吧
在VXD中好像用不了
而且不知道你有没有试过Get_Thread_Win32_Pri服务
我用它读到的得返回值是 8 ,
这个返回值不是指优先级么?
如下调用:
KIRQL IRQL_GetLevel()
{
KIRQL retThis;
_asm xor eax, eax // we will clobber eax
_asm mov ecx, eax // we will clobber ecx
_asm mov edx, eax // we will clobber edx
_asm xor edi, edi // we will clobber edi
_asm xor esi, esi // we will clobber esi
VxDCall(Get_Cur_Thread_Handle) // edi <- current thread handle
VxDCall(Get_Thread_Win32_Pri) // eax <- current thread priority
_asm mov retThis, al
return retThis;
}
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
游客

返回顶部