exitProcess 函数 (processthreadsapi.h)
结束调用进程及其所有线程。
语法
void ExitProcess(
[in] UINT uExitCode
);
参数
[in] uExitCode
进程和所有线程的退出代码。
返回值
无
备注
使用 GetExitCodeProcess 函数检索进程的退出值。 使用 GetExitCodeThread 函数检索线程的退出值。
退出进程会导致以下问题:
- 进程中的所有线程(调用线程除外)都会终止其执行,而不会收到DLL_THREAD_DETACH通知。
- 步骤 1 中终止的所有线程的状态将变为信号。
- 所有加载的动态链接库 (DLL) 的入口点函数都使用 DLL_PROCESS_DETACH 调用。
- 在所有附加的 DLL 执行任何进程终止代码后, ExitProcess 函数将终止当前进程,包括调用线程。
- 调用线程的状态变为信号。
- 进程打开的所有对象句柄都会关闭。
- 进程的终止状态从STILL_ACTIVE更改为进程的退出值。
- 进程对象的状态变为信号,满足任何一直等待进程终止的线程。
在 DLL 中调用 ExitProcess 可能会导致意外的应用程序或系统错误。 仅当知道哪些应用程序或系统组件将加载 DLL 并且在此上下文中调用 ExitProcess 是安全的时,才 确保从DLL 调用 ExitProcess 。
退出进程不会导致子进程终止。
退出进程不一定从操作系统中删除进程对象。 关闭进程的最后一个句柄时,将删除进程对象。
示例
有关示例,请参阅 使用重定向的输入和输出创建子进程。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | processthreadsapi.h (包括 Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
DLL | Kernel32.dll |