| 
			 
					阅读:1846回复:7
				 
				一个百思不知其解的问题PsGetCurrentProcess
					代码片断:
 
							typedef struct info{ ...ULONG pid;...}INFO,*PINFO; void GetProID(PULONG pID){ PINFO curInfo=ExAllocatePool(...); curInfo.pid = pID[0];这行代码出错(蓝屏),提示好象是句柄无效,搞不明白为什么会这样,请大家帮帮忙. } void getProcessId{ PULONG pid = PsGetCurrentProcess(); GetProID(pid); }  | 
	|
| 
			 沙发# 
								发布于:2005-01-23 18:54				
			
					curInfo.pid = pID[0];
 
							修改为 curInfo->pid = pID[0]; 奇怪你竟然能编译通过?!  | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2005-01-24 08:53				
			curInfo.pid = pID[0];  | 
	|
					
						
  | 
	
| 
			 地板# 
								发布于:2005-01-24 08:54				
			curInfo.pid = pID[0]; 估计是警告错误,他没有处理吧  | 
	|
					
						
  | 
	
| 
			 地下室# 
								发布于:2005-01-24 09:15				
			
					 PsGetCurrentProcess proc near
 
							.text:0040DBDF mov eax, large fs:124h ; IoGetCurrentProcess .text:0040DBE5 mov eax, [eax+44h] .text:0040DBE8 retn .text:0040DBE8 PsGetCurrentProcess endp 应该不会有问题的.  | 
	|
					
						
  | 
	
| 
			 5楼# 
								发布于:2005-01-24 13:01				
			
					笔误,原码是这样的,不好意思了,curInfo.pid = pID[0];改为curInfo ->pid = pID[0];
 
							只要我屏蔽掉这行代码,驱动能正确执行,反之则篮屏,请高手解答一下或感兴趣的可以亲自试验一下  | 
	|
| 
			 6楼# 
								发布于:2005-01-26 01:27				
			笔误,原码是这样的,不好意思了,curInfo.pid = pID[0];改为curInfo ->pid = pID[0]; 代码写的全点 PINFO curInfo=ExAllocatePool(...); 具体是怎么写的 curInfo是否已经正常得到?????????????  | 
	|
					
						
  | 
	
| 
			 7楼# 
								发布于:2005-01-26 09:12				
			[quote]笔误,原码是这样的,不好意思了,curInfo.pid = pID[0];改为curInfo ->pid = pID[0]; 代码写的全点 PINFO curInfo=ExAllocatePool(...); 具体是怎么写的 curInfo是否已经正常得到????????????? [/quote] 一般而言除非申请空间太大,不然的话不会返回失败的,不过最好给个完整的例子,便于大家调试和测试......  | 
	|
					
						
  |