TechNet Magazine > Home > Issues > 2009 > June >  Windows Confidential: When Windows Audio Goes H...
Windows Confidential When Windows Audio Goes Haywire
Raymond Chen


If you look at the Description for AudioDG.exe on the Processes tab of Task Manager, you'll see that it says Windows Audio Device Graph Isolation. This is a provocative name that teases you with information without actually providing any.
The AudioDG process is the home of the Windows audio engine. This is where digital signal processing happens. The process is intentionally separated from the Windows Audio service for a variety of reasons; among these is that the AudioDG process hosts all the fancy audio effects, which go by the technical name Audio Processing Objects but which are referred to in the user interface simply as Audio Enhancements.
We were introduced to Audio Enhancements briefly back in May, when I discussed the Loudness Equalization audio enhancement, which lets you set your volume control to a comfortable level, and then you never need to touch it again. For a description of other built-in enhancements, you can read the opening pages of the document "Reusing Windows Vista Audio System Effects."
Isolating these Audio Processing Objects is important because audio hardware vendors can include new Audio Processing Objects with their drivers. By sequestering the Audio Processing Objects in a separate process, the scope of a crash in an Audio Processing Object is contained. If AudioDG crashes, you will only lose sound. The rest of your system will keep running.
Unfortunately, there are other things an Audio Processing Object can do that will cause problems without causing a crash. For example, they can hang, but again, the scope of this is limited to audio processing. What's worse is when an Audio Processing Object goes haywire and consumes exorbitant amounts of resources, sucking up all your CPU cycles or leaking memory like a sieve. Fortunately, these types of mistakes are much less common than flat-out crashes.
But if you're unlucky enough to find yourself watching the AudioDG process consuming ridiculous amounts of CPU or memory, there is something you can do:
  • Open the Sounds control panel and go to the Playback page.
  • Select your playback device (speakers, probably) and click Properties.
  • Click on the Enhancements tab. (If there isn't an Enhancements tab available, this means your playback device doesn't have Audio Processing Objects associated with it.)
  • Use the checkboxes to turn off some (or all) of the enhancements, which, as you've learned, is just a friendlier name for Audio Processing Objects. The "Disable all enhancements" checkbox acts as the master switch to turn off everything.
As you can imagine, sound card vendors really, really, really don't want you to disable the fancy features they spent a lot of money on to develop. They rely on these features to help set them apart from the competition. "Use our sound card instead of that other sound card because our sound card sounds more awesome!"
When the audio hardware vendors found out the Windows audio team was adding a way to disable these precious enhancements, the vendors became very concerned and exerted pressure via every channel available, trying to force the Windows audio team to remove the master switch that turns off everything. It was a long, hard fight, but the Windows audio team prevailed and now you have that checkbox. (And to make sure no sound card vendor tries to pull a fast one, part of the driver's WHQL test is to verify that the vendor's driver doesn't try to hide the checkbox or otherwise prevent it from working.) You should probably send them a thank you note for fighting the good fight and winning.
Okay, but why the name AudioDG? The term Device Graph is used to describe the way the various components of the audio system connect, and it is along these pathways that audio samples travel on their way to your speakers. The Windows audio team intended to name the program DeviceGraph.exe, but due to a misunderstanding, they shortened it to AudioDG. They had mistakenly thought that the name of the program could not exceed eight characters, a throwback to the old 8.3 days before long file names were in use. By the time the misunderstanding was corrected, it was too late, and the name had been chosen.
Thanks to Larry Osterman and Elliot Omiya for providing assistance in writing this article.

Raymond Chen's Web site, The Old New Thing, and identically titled book (Addison-Wesley, 2007) deal with Windows history, Win32 programming, and Krashen's Comprehensible Input Hypothesis.

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
Page view tracker