IDebugControl::WaitForEvent メソッド (dbgeng.h)
WaitForEvent メソッドは、デバッガー エンジン アプリケーションに中断するイベントを待機します。
構文
HRESULT WaitForEvent(
[in] ULONG Flags,
[in] ULONG Timeout
);
パラメーター
[in] Flags
0 に設定します。 現在、このパラメーターで使用できるフラグはありません。
[in] Timeout
このメソッドが返されるまで待機するミリ秒数を指定します。 Timeout が INFINITE の場合、デバッガー エンジン アプリケーションに中断するイベントが発生するか、終了割り込みが発行されるまで、このメソッドは戻りません。 現在のセッションにライブ カーネル ターゲットがある場合は、 Timeout を INFINITE に設定する必要があります。
戻り値
このメソッドは他のエラー値を返す場合があり、上記のエラー値には追加の意味がある場合があります。 詳細については、「 戻り値 」を参照してください。
リターン コード | 説明 |
---|---|
|
メソッドは正常に実行されました。 |
|
タイムアウトの有効期限が切れています。 |
|
終了割り込みが発行されました。 ターゲットは使用できません。 |
|
未解決の入力要求があるか、どのターゲットもイベントを生成できませんでした。 |
|
エンジンは既にイベントを待機しています。 |
注釈
メソッドは、デバッガー セッションを開始したスレッドからのみ呼び出すことができます。
イベントが発生すると、 デバッガー エンジン によってイベントが処理され、イベント コールバックが呼び出されます。 これらのコールバックのいずれかが、(DEBUG_STATUS_BREAKを返すことによって) イベントがデバッガー エンジン アプリケーションに分割されることを示している場合、このメソッドは を返します。それ以外の場合は、イベントを待機し続けます。 イベント フィルターでは、イベントがデバッガー エンジン アプリケーションに分割されるように指定することもできます。 イベント フィルターの詳細については、「 例外とイベントの制御」を参照してください。
このメソッドは再入可能ではありません。 いったん呼び出されると、それが戻るまでは、どのクライアントでも再度呼び出すことはできません。 特に、コールバックによって実行される拡張機能やコマンドなど、イベント コールバックから呼び出すことはできません。
イベントを生成できるターゲットがない場合 (たとえば、すべてのターゲットが終了しました)、このメソッドは現在のセッションを終了し、ターゲットを破棄して、E_UNEXPECTEDを返します。
定数 INFINITE は Winbase.h で定義されています。
WaitForEvent を使用してデバッガー アプリケーションとターゲットの実行フローを制御する方法の詳細については、「セッションと実行モデルのデバッグ」を参照してください。 イベント コールバックの詳細については、「イベントの 監視」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | dbgeng.h (Dbgeng.h、Winbase.h を含む) |