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) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |