WaitForDebugEventEx 関数 (debugapi.h)
デバッグ中のプロセスでデバッグ イベントが発生するまで待機します。
構文
BOOL WaitForDebugEventEx(
[out] LPDEBUG_EVENT lpDebugEvent,
[in] DWORD dwMilliseconds
);
パラメーター
[out] lpDebugEvent
デバッグ イベントに関する情報を受け取る DEBUG_EVENT 構造体へのポインター。
[in] dwMilliseconds
デバッグ イベントを待機するミリ秒数。 このパラメーターが 0 の場合、関数はデバッグ イベントをテストし、直ちにを返します。 パラメーターが INFINITE の場合、デバッグ イベントが発生するまで関数は戻りません。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
デバッグ中のプロセスを作成したスレッドのみが WaitForDebugEventEx を呼び出すことができます。
CREATE_PROCESS_DEBUG_EVENTが発生すると、デバッガー アプリケーションは、デバッグ中のプロセスのイメージ ファイルへのハンドル、デバッグ中のプロセスへのハンドル、および DEBUG_EVENT構造で デバッグされているプロセスの初期スレッドへのハンドルを受け取ります。 これらのハンドルが返されるメンバーは、 u.CreateProcessInfo.hFile (イメージ ファイル)、 u.CreateProcessInfo.hProcess (process)、 u.CreateProcessInfo.hThread (初期スレッド) です。 システムが以前にEXIT_PROCESS_DEBUG_EVENTデバッグ イベントを報告した場合、デバッガーが ContinueDebugEvent 関数を呼び出すと、システムはプロセスとスレッドのハンドルを閉じます。 デバッガーは 、CloseHandle 関数を呼び出して、イメージ ファイルへのハンドルを閉じる必要があります。
同様に、CREATE_THREAD_DEBUG_EVENTが発生すると、デバッガー アプリケーションは、DEBUG_EVENT構造体のu.CreateThread.hThread メンバーでデバッグ イベントが発生したスレッドへのハンドルを受け取ります。 システムが以前にEXIT_THREAD_DEBUG_EVENTデバッグ イベントを報告した場合、デバッガーが ContinueDebugEvent 関数を呼び出すと、システムはスレッドにハンドルを閉じます。
LOAD_DLL_DEBUG_EVENTが発生すると、デバッガー アプリケーションは、DEBUG_EVENT構造体の u.LoadDll.hFile メンバー内の読み込まれた DLL へのハンドルを受け取ります。 このハンドルは、デバッガー アプリケーションで CloseHandle 関数を呼び出して閉じる必要があります。
例
例については、「 デバッガーのメイン ループの記述」を参照してください。
要件
サポートされている最小のクライアント | Windows 10 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | debugapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |