每当应用程序或 Windows 组件想要播放或录制音频时,它都使用各种音频 API 之一。
音频流初始化
所有音频 API 最终都会调用核心音频 API 调用 IAudioClient::Initialize。 IAudioClient::Initialize 函数创建应用程序与 Windows 音频引擎之间的连接,以及 Windows 音频引擎与音频驱动程序之间的连接。
如果 IAudioClient::Initialize 调用失败,则应用程序在某些情况下无法使用音频。 某些 IAudioClient::Initialize 错误是良性的,将被忽略; 附录中提供了这些错误的列表。
调用的结果记录在 Microsoft.Windows.Audio.Client 提供程序的 AudioClientInitialize 事件中。 如果调用成功, 则 HRESULT 字段为 0,如果调用失败,则为负数。
以下音频度量值跟踪 IAudioClient::Initialize 成功。
- 至少有一个音频流初始化失败的计算机百分比
- 有不佳流初始化成功率的机器百分比
- 每个驱动程序至少有一个音频流初始化失败的计算机终结点的百分比
- 流初始化成功率不佳的计算机终端的百分比
- 每个驱动程序至少有一个音频渲染流初始化失败的机器端点所占的比例
- 至少有一个音频呈现流初始化失败的计算机百分比
- 每个驱动程序至少有一个音频捕获流初始化失败的计算机终结点的百分比
- 至少有一个音频捕获流初始化失败的计算机百分比
音频用户模式可靠性
内核流式处理音频驱动程序在内核模式下运行。 如果音频驱动程序遇到异常,则会导致蓝屏死机(BSOD)或绿屏死机(GSOD)。
对于音频内核模式可靠性问题,没有具体度量值,但一般情况下,内核模式可靠性问题有度量值。
Windows 共享模式音频引擎在用户模式下运行。 具体而言,Windows 音频服务(AudioSrv.dll(AudioSrv)在专用 svchost.exe 进程中运行。 它还启动了一个辅助进程 Windows 音频设备图形隔离,audiodg.exe(AudioDg)。
音频 IHV 可以向用户模式音频引擎中添加称为音频处理对象(APO)的插件。
如果 APO 遇到异常,不会出现蓝屏死机的问题,但 Windows 音频引擎会崩溃。 还有一个看门狗定时器,用于验证来自应用程序的调用能否快速完成。 如果呼叫停滞,监视器会注意到并强制 Windows 音频引擎崩溃。
无论哪种方式,系统上的所有音频都会丢失,直到可以重启音频引擎。
如果 AudioDg 崩溃,并且 AudioSrv 可以检测到,则会从 Microsoft.Windows.Audio.Service 提供程序记录 AudioDgCrash 事件。 在某些较旧版本的 Windows 10 中,事件为 AudioDg-Crash。
如果 AudioSrv 崩溃,而 AudioDg 可以察觉时,则会从 Microsoft.Windows.Audio.DeviceGraph 提供程序记录 AudioSrvSvchostCrash 事件。 在某些旧版本的 Windows 10 中,事件为 AudioSrv-Svchost-Crash。
如果音频服务卡死,则会从 Microsoft.Windows.Audio.Service 提供程序记录卡死事件。 在某些较旧版本的 Windows 10 中,对于某些类型的暂停,还会从 Microsoft.Windows.Audio.DeviceGraph 提供程序记录事件日志。
以下音频度量跟踪 Windows 音频引擎的可靠性:
音频处理对象禁用
此度量跟踪音频处理对象的自动禁用:
如果发货标签被拒绝,该怎么办
如果运输标签被拒绝,请参阅申诉被拒绝的音频驱动程序