GetExitCodeProcess 関数 (processthreadsapi.h)
指定したプロセスの終了状態を取得します。
構文
BOOL GetExitCodeProcess(
[in] HANDLE hProcess,
[out] LPDWORD lpExitCode
);
パラメーター
[in] hProcess
プロセスへのハンドル。
ハンドルには、 PROCESS_QUERY_INFORMATION または PROCESS_QUERY_LIMITED_INFORMATION アクセス権が必要です。 詳細については、「 プロセス のセキュリティとアクセス権」を参照してください。
Windows Server 2003 および Windows XP: ハンドルには 、PROCESS_QUERY_INFORMATION アクセス権が必要です。
[out] lpExitCode
プロセス終了状態を受け取る変数へのポインター。 詳細については、「解説」を参照してください。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
この関数は直ちにを返します。 プロセスが終了せず、関数が成功した場合、返される状態は STILL_ACTIVE ( STATUS_PENDING のマクロ (minwinbase.h)) です。 プロセスが終了し、関数が成功した場合、返される状態は次のいずれかの値になります。
- ExitProcess 関数または TerminateProcess 関数で指定された終了値。
- プロセスのメインまたは WinMain 関数からの戻り値。
- プロセスが終了する原因となった未処理の例外の例外値。
重要
GetExitCodeProcess 関数は、スレッドが終了した後にのみ、アプリケーションによって定義された有効なエラー コードを返します。 したがって、アプリケーションでは、エラー コードとして STILL_ACTIVE (259) を使用しないでください (STILL_ACTIVE は STATUS_PENDING のマクロ (minwinbase.h))。 スレッド がエラー コードとしてSTILL_ACTIVE (259) を返した場合、その値をテストするアプリケーションは、スレッドがまだ実行されていることを意味すると解釈し、スレッドが終了した後もスレッドの完了をテストし続けます。これにより、アプリケーションが無限ループになる可能性があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |