IDebugControl::WaitForEvent 方法 (dbgeng.h)
WaitForEvent 方法等待中断调试器引擎应用程序的事件。
语法
HRESULT WaitForEvent(
[in] ULONG Flags,
[in] ULONG Timeout
);
参数
[in] Flags
设置为零。 目前没有可用于此参数的标志。
[in] Timeout
指定在此方法返回之前等待的毫秒数。 如果 超时 为 INFINITE,则在发生中断调试器引擎应用程序或发出退出中断的事件之前,此方法不会返回。 如果当前会话具有实时内核目标,超时 必须设置为 INFINITE。
返回值
此方法可能返回其他错误值,上述错误值可能具有其他含义。 有关详细信息,请参阅 返回值。
返回代码 | 描述 |
---|---|
|
该方法成功。 |
|
超时已过期。 |
|
已发出退出中断。 目标不可用。 |
|
输入请求未完成,或者没有目标可以生成事件。 |
|
引擎已在等待事件。 |
言论
只能从启动调试器会话的线程调用该方法。
事件发生时,调试器引擎 将处理事件并调用事件回调。 如果其中一个回调指示事件应中断调试器引擎应用程序(通过返回DEBUG_STATUS_BREAK),此方法将返回;否则,它将继续等待事件。 事件筛选器还可以指定事件应闯入调试器引擎应用程序。 有关事件筛选器的详细信息,请参阅 控制异常和事件。
此方法不是重新加入方法。 调用后,在返回之前,它不能在任何客户端上再次调用。 具体而言,不能从事件回调调用它,包括回调执行的扩展和命令。
如果没有任何目标能够生成事件(例如,所有目标都已退出)-此方法将结束当前会话,放弃目标,然后返回E_UNEXPECTED。
常量 INFINITE 在 Winbase.h 中定义。
有关使用 WaitForEvent 控制调试器应用程序和目标的执行流的详细信息,请参阅 调试会话和执行模型。 有关事件回调的详细信息,请参阅 监视事件。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h、Winbase.h) |