更新时间:2022-07-21 16:39
ExitProcess 结束调用的进程及其所有的线程
uExitCode
该进程和所有线程的退出代码。
此函数没有返回值
使用GetExitCodeProcess函数检索进程的退出值。使用GetExitCodeThread函数检索线程的退出值。
退出进程会导致以下情况:
如果进程中的一个终止线程持有锁并且其中一个加载的DLL中的DLL分离代码尝试获取相同的锁,则调用ExitProcess会导致死锁。 相反,如果进程通过调用TerminateProcess终止,则进程附加的DLL不会被通知进程终止。 因此,如果您不知道进程中所有线程的状态,最好调用TerminateProcess而不是ExitProcess。 请注意,从应用程序的main函数返回会导致对ExitProcess的调用。
在DLL中调用ExitProcess可能会导致意外的应用程序或系统错误。 只有当您知道哪些应用程序或系统组件将加载DLL并且在此上下文中调用ExitProcess是安全的时,才确保从DLL调用ExitProcess。
退出进程不会导致子进程终止。
退出进程不一定会从操作系统中删除进程对象。 关闭进程的最后一个句柄时,将删除进程对象。