| 
			 
					阅读:1318回复:2
				 
				关于Vxd的运行级别――急!!!
					请问在Vxd中又没有类似于NdisMSynchronizeWithInterrupt 这种提升IRQL,以免被指定的中断打断的函数呀? 
 
							还有Vxd一般运行于在什么IRQL级别上? DISPATCH 的级别一般是 2 可我用 Get_Thread_Win32_Pri取得的线程优先级怎么都是8呀?  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2001-08-14 21:00				
			
					VXD通常在PASSIVE_LEVEL级运行,在分发例程中,提升到DISPATCH_LEVEL级运行。
 
							在DDK中,KeRaiseIrql可以提升IRQL级。  | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于: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; }  | 
	|
					
						
  |