次の方法で共有


IDebugControl::WaitForEvent メソッド (dbgeng.h)

WaitForEvent メソッドは、デバッガー エンジン アプリケーションに中断するイベントを待機します。

構文

HRESULT WaitForEvent(
  [in] ULONG Flags,
  [in] ULONG Timeout
);

パラメーター

[in] Flags

0 に設定します。 現在、このパラメーターで使用できるフラグはありません。

[in] Timeout

このメソッドが返されるまで待機するミリ秒数を指定します。 Timeout が INFINITE の場合、デバッガー エンジン アプリケーションに中断するイベントが発生するか、終了割り込みが発行されるまで、このメソッドは戻りません。 現在のセッションにライブ カーネル ターゲットがある場合は、 Timeout を INFINITE に設定する必要があります。

戻り値

このメソッドは他のエラー値を返す場合があり、上記のエラー値には追加の意味がある場合があります。 詳細については、「 戻り値 」を参照してください。

リターン コード 説明
S_OK
メソッドは正常に実行されました。
S_FALSE
タイムアウトの有効期限が切れています。
E_PENDING
終了割り込みが発行されました。 ターゲットは使用できません。
E_UNEXPECTED
未解決の入力要求があるか、どのターゲットもイベントを生成できませんでした。
E_FAIL
エンジンは既にイベントを待機しています。

注釈

メソッドは、デバッガー セッションを開始したスレッドからのみ呼び出すことができます。

イベントが発生すると、 デバッガー エンジン によってイベントが処理され、イベント コールバックが呼び出されます。 これらのコールバックのいずれかが、(DEBUG_STATUS_BREAKを返すことによって) イベントがデバッガー エンジン アプリケーションに分割されることを示している場合、このメソッドは を返します。それ以外の場合は、イベントを待機し続けます。 イベント フィルターでは、イベントがデバッガー エンジン アプリケーションに分割されるように指定することもできます。 イベント フィルターの詳細については、「 例外とイベントの制御」を参照してください。

このメソッドは再入可能ではありません。 いったん呼び出されると、それが戻るまでは、どのクライアントでも再度呼び出すことはできません。 特に、コールバックによって実行される拡張機能やコマンドなど、イベント コールバックから呼び出すことはできません。

イベントを生成できるターゲットがない場合 (たとえば、すべてのターゲットが終了しました)、このメソッドは現在のセッションを終了し、ターゲットを破棄して、E_UNEXPECTEDを返します。

定数 INFINITE は Winbase.h で定義されています。

WaitForEvent を使用してデバッガー アプリケーションとターゲットの実行フローを制御する方法の詳細については、「セッションと実行モデルのデバッグ」を参照してください。 イベント コールバックの詳細については、「イベントの 監視」を参照してください。

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h、Winbase.h を含む)

こちらもご覧ください

IDebugControl

IDebugControl2

IDebugControl3