WaitForDebugEvent

デバッグ対象プロセスでデバッグイベントが発生するのを待機する。(WaitForDebugEvent)

WaitForDebugEvent lpDebugEvent, dwMilliseconds

lpDebugEvent : [var] デバッグイベントの情報を受け取る DEBUG_EVENT 構造体へのポインタ。
dwMilliseconds : [int] デバッグイベントを待機するミリ秒数。0 を指定するとデバッグイベントをテストして即座に戻る。INFINITE を指定するとデバッグイベントが発生するまで戻らない。

(プラグイン / モジュール : kernel32.dll)

解説

デバッグ対象プロセスでデバッグイベントが発生するのを待機する。(WaitForDebugEvent)

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
デバッグ対象プロセスを作成したスレッドのみ WaitForDebugEvent
を呼び出せる。CREATE_PROCESS_DEBUG_EVENT が発生すると、デバッガアプリは DEBUG_EVENT
構造体内でデバッグ対象プロセスのイメージファイル、プロセス、初期スレッドのハンドルを受け取る。これらは
u.CreateProcessInfo.hFile (イメージ)、u.CreateProcessInfo.hProcess
(プロセス)、u.CreateProcessInfo.hThread (初期スレッド)
で返される。EXIT_PROCESS_DEBUG_EVENT を以前に報告していれば、デバッガが ContinueDebugEvent
を呼んだときシステムはプロセスとスレッドのハンドルを閉じる。デバッガはイメージファイルのハンドルを CloseHandle
で閉じる必要がある。同様に CREATE_THREAD_DEBUG_EVENT 発生時は u.CreateThread.hThread
でスレッドのハンドルを受け取る。EXIT_THREAD_DEBUG_EVENT を以前に報告していれば、デバッガが
ContinueDebugEvent を呼んだときシステムはスレッドハンドルを閉じる。LOAD_DLL_DEBUG_EVENT 発生時は
u.LoadDll.hFile でロード DLL のハンドルを受け取り、デバッガは CloseHandle で閉じる必要がある。警告
WaitForDebugEvent を呼び出すスレッドに非同期プロシージャ呼び出し (APC) をキューイングしないこと。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs