首页
社区
课程
招聘
[求助]ZwTerminateProcess返回STATUS_PROCESS_IS_TERMINATING
发表于: 2016-12-9 17:25 3643

[求助]ZwTerminateProcess返回STATUS_PROCESS_IS_TERMINATING

2016-12-9 17:25
3643
首先我调用了一次ZwTerminateProcess结束了一个进程,然后重新打开这个进程,再次调用ZwTerminateProcess进行结束,返回STATUS_PROCESS_IS_TERMINATING,说进程已经被结束了???
贴出代码:
void KillProcess(unsigned long Pid)
{
	HANDLE hProcess = NULL;
	CLIENT_ID ClientId;
	OBJECT_ATTRIBUTES oa;
	NTSTATUS status;
	DbgPrint("kill now!\r\n");
	ClientId.UniqueProcess = (HANDLE)Pid; 
	ClientId.UniqueThread = 0;
	oa.Length = sizeof(oa);
	oa.RootDirectory = 0;
	oa.ObjectName = 0;
	oa.Attributes = 0;
	oa.SecurityDescriptor = 0;
	oa.SecurityQualityOfService = 0;
	//打开进程,如果句柄有效,则结束进程	
	ZwOpenProcess(&hProcess, 1, &oa, &ClientId);
	DbgPrint("%x\r\n", status);
	if (hProcess)
	{
	        ZwTerminateProcess(hProcess, 0);
		DbgPrint("%x---hprocess:%x\r\n", status,hProcess);
		ZwClose(hProcess);
	};
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 31
活跃值: (87)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
然而,我却能用任务管理器结束掉他。。。。这究竟是怎么回事。。。。
2016-12-9 17:55
0
雪    币: 204
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
传入的 pid 值呢
2016-12-9 17:56
0
雪    币: 31
活跃值: (87)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
是对的,第一次能结束,然后就不行了
2016-12-9 18:53
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
IS_TERMINATING, 中止操作正在进行, 可能某个地方挂起了, 是否设置了调试模式?
2016-12-9 21:29
0
游客
登录 | 注册 方可回帖
返回
//