IDebugControl3::WaitForEvent 方法 (dbgeng.h)

WaitForEvent 方法等待中断到调试器引擎应用程序的事件。

语法

HRESULT WaitForEvent(
  [in] ULONG Flags,
  [in] ULONG Timeout
);

参数

[in] Flags

设置为零。 目前,此参数中没有可以使用的标志。

[in] Timeout

指定此方法返回之前要等待的毫秒数。 如果 Timeout 为 INFINITE,则在发生中断调试器引擎应用程序的事件或发出退出中断之前,此方法不会返回。 如果当前会话具有实时内核目标,则必须将 Timeout 设置为 INFINITE。

返回值

此方法可能会返回其他错误值,上述错误值可能具有其他含义。 有关更多详细信息 ,请参阅返回值

返回代码 说明
S_OK
方法成功。
S_FALSE
超时已过期。
E_PENDING
发出退出中断。 目标不可用。
E_UNEXPECTED
输入请求未完成,或者任何目标都无法生成事件。
E_FAIL
引擎已在等待事件。

注解

只能从启动调试器会话的线程调用 方法。

发生事件时, 调试器引擎 将处理事件并调用事件回调。 如果其中一个回调指示事件应通过返回DEBUG_STATUS_BREAK) (进入调试器引擎应用程序,则此方法将返回:否则,它会继续等待事件。 事件筛选器还可以指定事件应进入调试器引擎应用程序。 有关事件筛选器的详细信息,请参阅 控制异常和事件

此方法不是可重入的。 调用它后,在返回之前,不能在任何客户端上再次调用它。 具体而言,它不能从事件回调调用,包括由回调执行的扩展和命令。

如果任何目标都无法生成事件(例如,所有目标都已退出),则此方法将结束当前会话,放弃目标,然后返回E_UNEXPECTED。

常量 INFINITE 在 Winbase.h 中定义。

有关使用 WaitForEvent 控制调试器应用程序和目标的执行流的详细信息,请参阅 调试会话和执行模型。 有关事件回调的详细信息,请参阅 监视事件

要求

要求
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h、Winbase.h)

另请参阅

IDebugControl

IDebugControl2

IDebugControl3