ExitProcess

【勇芳软件工作室】汉化HomePreviousNext

ExitProcess函数结束进程及其所有线程。

// exit code for all threads

UINT 【uExitCode】//退出所有线程的代码
); 

参数

【uExitCode】

指定进程的退出代码以及由于此调用而终止的所有线程。使用GetExitCodeProcess函数来检索进程的退出值。使用GetExitCodeThread函数来检索线程的退出值。

返回值

此函数不返回值。

备注

ExitProcess是结束进程的首选方法。此函数提供了一个干净的过程关闭。这包括调用所有连接的动态链接库(DLL)的入口点函数,其值指示进程与DLL分离。如果进程通过调用TerminateProcess终止,进程所附加的DLL不会被通知进程终止。

所有连接的DLL都执行了任何进程终止值后,该函数将终止当前进程。

终止进程会导致以下情况:

所有由进程打开的对象句柄都被关闭。

2.进程中的所有线程终止其执行。

3.过程对象的状态变为信号,满足等待进程终止的任何线程。

4.过程的所有线程的状态变得有信号,满足等待线程终止的任何线程。

5.过程的终止状态从STILL_ACTIVE更改为进程的退出值。

终止进程不会导致子进程终止。

终止进程不一定从操作系统中删除进程对象。当进程的最后一个句柄关闭时,进程对象被删除。

ExitProcessExitThreadCreateThreadCreateRemoteThread功能,以及正在开始的进程(由CreateProcess调用的结果)在进程之间相互序列化。一次只能在地址空间中发生其中一个事件。这意味着以下限制:

*在进程启动和DLL初始化例程中,可以创建新的线程,但是直到进程的DLL初始化完成为止,才能开始执行。

一个进程中只有一个线程可以在一个DLL初始化或分离例程中。

* ExitProcess不返回,直到它们的DLL初始化或分离例程中没有线程。

也可以看看

CreateProcess, CreateRemoteThread, CreateThread, ExitThread, GetExitCodeProcess, GetExitCodeThread, OpenProcess, TerminateProcess