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