阅读:1767回复: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] 一般而言除非申请空间太大,不然的话不会返回失败的,不过最好给个完整的例子,便于大家调试和测试...... |
|
|