プロセス、およびその全てのスレッドを終了する
Declare Sub ExitProcess Lib "kernel32.dll" _
(ByVal uExitCode As Long)
Declare Sub ExitProcess Lib "kernel32.dll" _
(ByVal uExitCode As Integer)
VOID ExitProcess(
UINT uExitCode
);
引数
uExitCode
プロセスの終了コード備考
uExitCodeを終了コードとして設定するが、この値は親プロセスが使う。
終了コードを取得するには、GetExitCodeProcess()関数、またはGetExitCodeThread()関数を
使用する。この関数はプロセスを終了させるための最も望ましい方法を提供する。
DLL結合しているプロセスをTerminateProcess()関数を使用して終了させると
プロセス終了の通知がDLLに送られない。ExitProcess()関数を使用すると
関連する全てのDLLの終了処理の完了を待つ。
プロセスの終了によって、次のイベントが発生する。
1.プロセスによってオープンされた全てのオブジェクトハンドルがクローズされる。
2.プロセスと関連する全てのスレッドを終了する。
3.プロセスのオブジェクトの状態は、シグナル状態になる。
4.プロセスと関連する全てのスレッドの状態は、シグナル状態になる。
5.プロセスの終了状態は、STILL_ACTIVEから終了コードになる。
また、プロセスを狩猟しても子プロセスは終了しない。
プロセスのオブジェクトハンドルを明示的に削除する必要はない。