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