Windows:终止进程:ERROR_INVALID_HANDLE

时间:2013-07-01 23:00:59

标签: windows terminate createprocess

我试图在我的子进程上调用TerminateProcess(仅作为当孩子陷入死锁或者激烈的事情时使用的安全机制)但是我得到了ERROR_INVALID_HANDLER。

我尝试使用过程设置,但它没有帮助。如果我在CreateProcess()之后立即调用TerminateProcess(),则调用确实有效。

BOOL ret;
HANDLE hProcess;

hProcess = OpenProcess(PROCESS_TERMINATE,
                        FALSE,
                        pid);

if (hProcess = NULL) {
    debug("Error: OpenProcess failed: %d", GetLastError());
    return -1;
}

ret = TerminateProcess(hProcess, 1);
CloseHandle(hProcess);

if (!ret) {
    debug("Error: TerminateProcess failed: %d", GetLastError());
    return -1;
}
else return 0;

我收到错误6,INVALID_HANDLE_EXCEPTION。我仔细检查并且pid是正确的(它与任务管理器中的匹配)。唯一可能的错误可能是我如何获得OpenProcess()的句柄。我试图使用PROCESS_ALL_ACCESS,但这不起作用。

有没有人知道会出现什么问题?

编辑:拍出这样一个愚蠢的错误!我给hProcess分配了NULL('='而不是'==')

对不起该帖子!

1 个答案:

答案 0 :(得分:0)

<ContactCards
 contact={name: "Mr whiskerson", imgurl: "http://placekitten.com/300/300", 
 phone:"04019292", email: "whiskahs@gmail.com"}
/>

这是分配而不是条件,请将“ =”更改为“ ==“