TerminateProcess函数终止指定的进程及其所有线程。
BOOL TerminateProcess(
HANDLE 【hProcess】, | //处理进程 |
UINT 【uExitCode】 | //退出代码的进程 |
); |
参数
【hProcess】
标识要终止的过程。
Windows NT:句柄必须具有PROCESS_TERMINATE访问权限。有关详细信息,请参阅过程对象.
【uExitCode】
指定进程的退出代码,以及由于此调用而终止的所有线程。使用GetExitCodeProcess函数来检索进程的退出值。使用GetExitCodeThread函数来检索线程的退出值。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
TerminateProcess功能用于无条件导致进程退出。仅在极端情况下使用。如果使用TerminateProcess而不是ExitProcess,则动态链接库(DLL)维护的全局数据的状态可能会受到影响。
TerminateProcess会导致进程中的所有线程终止,并导致进程退出,但是不会通知附加到进程的DLL进程正在终止。
终止进程会导致以下情况:
所有由进程打开的对象句柄都被关闭。
2.进程中的所有线程终止其执行。
3.过程对象的状态变为信号,满足等待进程终止的任何线程。
4.过程的所有线程的状态变得有信号,满足等待线程终止的任何线程。
5.过程的终止状态从STILL_ACTIVE更改为进程的退出值。
终止进程不会导致子进程终止。
终止进程不一定从系统中删除进程对象。当进程的最后一个句柄关闭时,进程对象被删除。
也可以看看
ExitProcess, OpenProcess, GetExitCodeProcess, GetExitCodeThread