首页
社区
课程
招聘
[求助]ZwQuerySystemInformation显示进程的问题
发表于: 2009-10-12 18:26 4284

[求助]ZwQuerySystemInformation显示进程的问题

2009-10-12 18:26
4284
我现在遇到一个问题..
当关闭一个进程后..马上ZwQuerySystemInformation查询进程
发现那个进程还在..但是在ZwQuerySystemInformation前加个Sleep(1000),
就显示正常了..
难道这个函数显示的不实时?
这个问题怎么解决呢...我不想加个Sleep...
哪位大侠帮忙下

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
status=ZwQuerySystemInformation(SystemProcessInformation,0,0,&length);
        if (STATUS_INFO_LENGTH_MISMATCH!=status)
        {
                //MessageBox("ZwQuerySystemInformation:查询缓冲区大小失败");
                return;
        }
        //在堆区申请内存
        buf=(PSYSTEM_PROCESSES)HeapAlloc(GetProcessHeap(),0,length);
        status=ZwQuerySystemInformation(SystemProcessInformation,buf,length,0);
我是这样直接获取缓冲区长度的
不是像taskmgr.exe那样
while(buf不够)
{
buf增加
}
那样查询长度的
2009-10-12 18:35
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
3
ZwQuerySystemInformation当然不可能是完全实时的。
你关闭进程也不可能是实时的。
2009-10-12 20:06
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
4
xp及以后不需要猜测buf,以小buf去一下return length就可以了,两次搞定
2009-10-12 20:07
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
嗯.我是这样的..谢谢360大牛///那我就在它前面加个sleep吧..
2009-10-12 20:14
0
游客
登录 | 注册 方可回帖
返回
//