ContinueDebugEvent

https://msdn.microsoft.com/ja-jp/library/cc429066.aspx https://msdn.microsoft.com/ja-jp/library/cc429066.aspx

デバッグイベントを報告したスレッドをデバッガが続行できるようにします。

BOOL ContinueDebugEvent(
  DWORD dwProcessId,       // 続行するプロセス
  DWORD dwThreadId,        // 続行するスレッド
  DWORD dwContinueStatus   // 続行状態
);

パラメータ

dwProcessId
続行するプロセスのハンドルを指定します。
dwThreadId
続行するスレッドのハンドルを指定します。指定するプロセス識別子とスレッド識別子の組み合わせによって、デバッグイベントを報告したスレッドが特定されなければなりません。
dwContinueStatus
デバッグイベントを報告したスレッドの続行方法を指定します。
DBG_CONTINUE フラグをセットすると、dwThreadId パラメータで指定したスレッドが EXCEPTION_DEBUG_EVENT デバッグイベントを報告していた場合は、すべての例外処理が停止し、スレッドが続行されます。スレッドが他のデバッグイベントを報告していた場合は、そのスレッドが続行されるだけです。

DBG_EXCEPTION_NOT_HANDLED フラグをセットすると、dwThreadId パラメータで指定したスレッドが EXCEPTION_DEBUG_EVENT デバッグイベントを報告していた場合は、例外処理が続行されます。それが初回通知例外イベントのときは、構造化例外ハンドラの検索ディスパッチロジックが使われます。それ以外のときは、プロセスが終了します。他のデバッグイベントを報告していた場合は、スレッドが続行されるだけです。

戻り値

関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。

解説

ContinueDebugEvent 関数を呼び出すことができるのは、 関数で dwProcessId を作成したスレッドだけです。
ContinueDebugEvent 関数が成功した後、指定したスレッドが続行されます。実行される操作は、続行するスレッドが報告していたデバッグイベントによって異なります。EXIT_THREAD_DEBUG_EVENT を報告していた場合は、デバッガが持つ、そのスレッドのハンドルが閉じます。EXIT_PROCESS_DEBUG_EVENT を報告していた場合は、デバッガが持つ、プロセスとスレッドの両方のハンドルが閉じます。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
Windows CE:対応していません
ヘッダー:winbase.h 内で宣言
インポートライブラリ:kernel32.lib を使用

参照

表示: