等待调试函数

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

Microsoft DirectShow 提供了多个用于调试无限等待的函数。

在零售版本中, DbgWaitForMultipleObjectsDbgWaitForSingleObject 函数的工作方式与其 Windows API 对应函数 WaitForMultipleObjectsWaitForSingleObject 类似,具有无限的超时间隔。

在调试版本中,这些函数使用全局超时值。 如果超时过期,函数将触发断言。 以下注册表项指定超时值(以毫秒为单位):

HKEY_LOCAL_MACHINE\<DebugRoot>\<Module Name>\TIMEOUT

其中 <DebugRoot> 是主题 调试输出函数中所述的注册表路径。

如果该键不存在,则超时值默认为 INFINITE。 可以使用 DbgSetWaitTimeout 函数替代注册表项。

函数 说明
DbgSetWaitTimeout 设置调试超时值。
DbgWaitForMultipleObjects 等待指定对象的任何 (或所有) 发出信号。
DbgWaitForSingleObject 等待对象发出信号。