IDebugControl2::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 を含む) |