

(In some older versions of Windows 10, for certain kinds of hangs, a Hang event would also be logged from the provider.

If the audio service hangs, a Hang telemetry event is logged from the provider. (In some older versions of Windows 10, the event was AudioSrv-Svchost-Crash.) If AudioSrv crashes, and AudioDg is around to notice, an AudioSrvSvchostCrash telemetry event is logged from the provider. (In some older versions of Windows 10, the event was AudioDg-Crash.) If AudioDg crashes, and AudioSrv is around to notice, an AudioDgCrash telemetry event is logged from the provider. If a call gets stuck, the watchdog notices and forces a crash of the Windows audio engine.Įither way, all audio on the system is lost until the audio engine can be restarted. There is also a watchdog timer which verifies that calls from applications are completing quickly. If an APO hits an exception, there is no blue screen of death, but the Windows audio engine crashes. It also launches a helper "Windows Audio Device Graph Isolation" process audiodg.exe (AudioDg).Īudio IHVs can include plugins to the user-mode audio engine called Audio Processing Objects (APOs).

In particular, the "Windows Audio" service AudioSrv.dll (AudioSrv) runs in a dedicated svchost.exe process. The Windows shared-mode audio engine runs in user mode. There are no measures specifically for audio kernel-mode reliability issues, but there are measures for kernel-mode reliability issues in general. If an audio driver hits an exception, it results in a Blue Screen of Death (BSOD) or Green Screen of Death (GSOD). Kernel Streaming audio drivers run in kernel mode.

Some IAudioClient::Initialize errors are benign and are ignored a list of these errors is provided in the appendix. If the IAudioClient::Initialize call fails, then the application is, with some exceptions, unable to use audio. This creates the connection between the application and the Windows audio engine, and a connection between the Windows audio engine and the audio driver. Whenever an application (or Windows component) wants to play or record audio, it uses one of various audio APIs.Īll of the audio APIs eventually invoke the core audio API call IAudioClient::Initialize. In this article Audio stream initialization
