What is AUDIODG.EXE?


One of the new audio components in Vista is a new process named audiodg.exe.

If you look at it in taskmgr, the description shows “Windows Audio Device Graph Isolation”, but that’s not really particularly helpful when it comes to figuring out what it does.

The short answer is that audiodg.exe hosts the audio engine for Vista.  All the DSP and other audio processing is done in audiodg.exe.  There are two reason it runs outside of the windows audio service.

The first is that there’s 3rd party code that gets loaded into audiodg.exe.  Audio hardware vendors have the ability to install custom DSPs (called Audio Processing Objects or APOs) into the audio pipeline.  For a number of reasons (reliability, serviceability, others) we’re not allowed to load 3rd party code into svchost processes (svchost.exe is a generic host process for services that’s used inside Windows). So we need to move all the code that interacts with these 3rd party APOs outside the audio service (that way if an APO crashes, it won’t take out some other critical part of the system with it).

The second reason for using a separate process for the audio engine is DRM.  The DRM system in Vista requires that the audio samples be processed in a protected process, and (for a number of technical reasons that are too obscure to go into) it’s not possible for a svchost hosted service to run in a protected process.

 

So why audiodg?

As I mentioned in my post “Audio in Vista, The Big Picture“, the route that audio samples take through the audio engine can be considered a directed graph.  Internally, we refer to this graph as the “Audio Device Graph” (ok, strictly speaking we call the part to the left of the mixer as the local graph, and the part to the right of the mixer the device graph, but when we consider the big picture, we just call it the audio device graph).

So why AudioDG?

Originally we called the process DeviceGraph.Exe.  For a number of reasons that are no longer relevant (they’re related to the INF based installer technology that was used before Vista), we thought that we needed to limit our binary names to 8.3 (it’s a long story – in reality we didn’t, but we thought we did).  So the nice long names we had chosen (AudioEngine.Dll, AudioKSEndpoint.Dll, and DeviceGraph.Exe) had to be truncated to 8.3.

I felt it was critically important that all the audio components had to have the word “Audio” in the beginning to make it clear that they had to do with audio functionality.  Since we thought we were limited to 8.3 names, that meant we had 3 letters to play with in the name.  For AudioEngine.Dll, it was relatively simple – it shortened to AUDIOENG.DLL.  Similarly for AudioKSEndpoint.Dll, it shortened to AUDIOKSE.DLL.

But DeviceGraph was somewhat more complicated.  I originally went with AudioADG.EXE (audio+ADG for Audio Device Graph), but people thought it was redundant (It expanded to audio audio device graph). 

Eventually we settled on “AUDIODG.EXE”.

So why the funky description?  Well because it accurately reflects what audiodg is – it’s a part of Windows, so you get “Windows”, it hosts the “Audio Device Graph”, and isolates it from the Windows Audio Service.

Comments (41)

  1. Skip says:

    OK, so protected processes were created to implement DRM, at least according to a white paper I see on the Microsoft website.   Reading it, it looks like they basically prevent the normal stuff people would do to processes, like injecting code into them, reading the process memory, debugging them, from other user-mode processes.   One question – is there something in Vista that prevents you from creating a kernel-mode process to do this?  The white paper basically said "don’t do that – it would be bad".

    I’m wondering if the DRM is really that toothless?

  2. I don’t want to go into DRM implementation, but how would you go about creating the kernel mode process?

    As I understand it, there are mitigations against that sort of thing.

  3. Bob says:

    Now, of course, someone will have to ask why their foreign-language version of Vista has the English audio.dll version. Why not audioesp.dll, audiochn.dll, or audiotlh.dll? [grin]

  4. Skip says:

    My assumption was that you’d be able to create an unsigned kernel-mode driver and load it, at least on 32-bit versions.    That’s what this webpage seems to imply, anyways.

    http://www.microsoft.com/whdc/winlogo/drvsign/drvsign_perOS.mspx

    Don’t get me wrong – I’m not one of those raving fanatics who froth at the mouth on DRM.   Since I have no plans on stealing stuff, as long as it doesn’t cause problems when I play the media, and doesn’t cause me to have to re-buy it multiple times it simply won’t bother me.   But it just seemed to me that someone spent a ton of work to do this for zero benefit, unless you disable playing protected content in the presence of a single unsigned driver on the system (which will be about everyone for awhile).

    I haven’t installed Vista yet anywhere, so I haven’t had a chance to explore this.

  5. Gil-Ad says:

    Well, at some point someone needed to debug these so-called protected processes… i wonder how that was done?

  6. M Knight says:

    Any software which relies on the kernel preventing code injections is fundementally broken if you have administrator/physical access. Kernel protection just makes things harder, not imposible.

  7. Gil-Ad, you can disable protecting audiodg.exe with a registry key (it’s documented in the "how to write a sysfx" document).  Of course protected content won’t play, but…

  8. Stefan Kuhr says:

    "…they’re related to the INF based installer technology that was used before Vista…"

    Larry, is inf based installing not anymore blessed by MS for Vista?

    Stefan

  9. Stefan: If you’re building a component that is deployed as a part of the Windows, then no, INF based installing is not supported (and hasn’t been since before Vista Beta1).

    This ONLY applies for components that are a part of the Windows operating system, I can’t speak for 3rd party code.

  10. Eric says:

    I have a question. Do you know of any issues with resource issues and this process? Whenever I hear my fan working I look and, lately, audiodg.exe is using between 14 and 20% of my dual core processor. There is no sound playing or any apps open that would use it like media players. Is it a sound driver issue? Using a Creative Audigy ZX2 OEM. I’ve been hearing rumblings on the net about other issues like game features, but I’ve seen reference to resource issues as well. Any help is appreciated. – Eric

  11. Eric, it’s possible some application is capturing from the microphone.  Audiodg.exe CPU usage of 14% is very unexpected though – even when rendering a reasonable number of streams (1-5) it doesn’t use that much CPU.

    Do you have any special audio effects enabled?  It’s possible those are chewing your CPU time up.

  12. Raffi says:

    Any reason why audiodg.exe would be using over 300 megs of RAM? http://www.chrismartin.info/blah/audio.jpg

  13. JeffD says:

    audiodg.exe is using 1 of my cores (though the memory consumption is only about 20megs for my system).  I don’t know if this will help, but I’m using the Asrock Dual SATA2 board, with an X2 proc.  The realtek details:

    Driver Version: 6.0.1.6213

    Audio Controller: ALi(5455)

    Audio Codec: ALC850

    I don’t have any of Realtek’s equalizer or sound environment stuff running, and disabling all of the input ports (mic, line-in) doesn’t change anything.  (I didn’t know if voice recognition could be to blame).  Anyone have any thoughts?  Thanks.

  14. JeffD says:

    An update, I noticed that the realtek control panel was a legacy component.  I couldn’t uninstall just that w/out losing the drivers as well, but I did disable the control panel via the registry.  This seems to have completely eliminated the problem, at least for my machine.  For those w/ similar problems, try this:

    1. Start->Regedit

    2. You can find most of your startup programs in 1 of 2 locations in the registry

    HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run

    and

    HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run

    3. Right-click Run, and choose export to a file somewhere so you can undo your changes,

    4. Start deleting entries (focus on sound programs).

    5. If there’s a program you don’t know about, check the path.  Sometimes that will give you a hint.  Generally you can also put the full file name (soundman.exe for example) into a google search, and bring up some sites that will tell you what the file does.

    6. Reboot after the change, and see if it helped.

  15. Or you could ue Windows Defender to manage your startup programs 🙂

    I’m still trying to figure out what’s up with the excessive CPU consumption in audiodg, my current guess is it’s a driver problem but I’m not sure yet.

    As for the memory consumption in audiodg, try disabling system effects (it’s in the properties tab for your audio devices (both capture and render)) and see if it changes things.  You’ll probably have to restart the audio service (to free up the wasted memory).

  16. Ashley Chapman says:

    Im getting the excessive memory problem too, audiodg.exe uses between 220 and 340mb of ram 🙁

    my motherboard is a Gigabyte GA-965P-DS3 with realtek HD audio – I downloaded the vista audio drivers from the gigabyte website

    realtek driver information:

    Audio driver version: 6.0.1.5302

    DirectX version: 10.0

    Audio controller: HD Audio

    Audio codec: ALC 883

  17. Brendan says:

    Running into problems CPU utilization w/ audiodg.exe as well – ASUS P5ld2-VM motherboard with onboard Realtek sound (using Realtek High Definition drivers from 01/18/07, Vista Certified).  AudioDG.exe runs at 0% CPU until I turn on Speech Recognition, at which point it starts bouncing between 24 and 28%.

  18. Chris says:

    I too have a Gigabyte DS3 with the Realtek HD Audio. I’ve disabled all effects and pretty much everything I could find to try and just run the bare minimum I could for sound. I’m sitting at 286MB for AudioDG.exe. That’s just rediculous, its not even playing anything. Double you tee eff.

  19. EHO (Microsoft) says:

    Ashley, hi, I work on the audio engine (with Larry :-)).  Are you running an RTM version of Vista?  If yes, what is the sampling rate of your speaker device? (right-click speaker icon, select Playback Devices, double-click your default audio device the one with the green checkmark, click advanced tab.  There will be an entry that looks like "xx bit, yyyyy Hz (some quality)").  

    Thanks.

  20. Ashley Chapman says:

    I think I am runing the standard Vista Ultimate edition. The sampling rate is set to 16 bit, 48000 Hz.

  21. Robin Edwards says:

    Just wanted to add that I’m also running a Gigabyte DS3 motherboard with Realtek onboard sound. Audiodg.exe leaks memory about 1/2 meg per song in windows media player. If I start WMP and watche the memory usage, every time I click "next track" the memory usage goes up circa 5-600kb.

    I hope this is of some help to you in solving the problem.

  22. Mark says:

    Either we can owe this coincidence to the popularity of the Gigabyte GA-965P-DS3 (not likely) or we have a problem with audiodg.exe that we Gigabyte owners just happen to be in here reporting (I stumbled on this thread while ‘googling’ for some answers to ‘audiodg.exe +memory’).  I’m also a DS3 owner, running Vista Premium, using the onboard Realtek audio and I’m sitting here wondering why my clean build is chewing on 380MB of my 2GB of RAM.  I paid good money for my RAM, I’d rather not have it leaking all over the system board.  Anyone find a good answer to this agressive memory consumption and audiodg.exe?

    -mark

  23. Mark says:

    Most excellent.  Here’s some additional data for anyone at Microsoft that might be listening.  I have my Realtek configured with nothing by stock/default options.  No special DSP settings, etc.  16 bit, 48Khz.  Vanilla all the way.  Ok… with that said.  I can sit here with TaskMgr running and open "System Sound Events" in Vista and EAT memory just by playing system sounds with the "Test" button in system sound events panel.  Good stuff.  Memory is cheap, and all.. but please don’t eat my memory.  Put it back where you found it when you’re finished using it.  Hopefully someone at MS gets a whiff of what stinks in audiodg.exe and renders a quick, reliably fix.  I’d hate to run back to XP, but I might have to if this kind of misbehavior lingers for very long.  I can’t afford to reboot just because I superceded my daily quote for audio playback.  Maybe that’s part of DRM?!?!  😉

    -Mark

  24. Mark says:

    UPDATE:  I didn’t end up swapping in my Santa Cruz (yet), but I found R1.60 Driver Set for HD Audio on Realtek’s site and upgraded the drivers in Vista (these drivers are not available via Gigabyte site).

    http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=24&PFid=24&Level=4&Conn=3&DownTypeID=3&GetDown=false#High%20Definition%20Audio%20Codecs

    After updating the drivers and rebooting, I was able to RE-Enable the sound effects (actually, the reinstall of drivers automatically un-checked the ‘disable all sound effects’ option).  This driver set seems, so far, to have resolved the issue I was seeing with AudiDG.exe.  I’m not able to play sounds, music, etc. and I’m no longer leaking memory all over the place.  It consumes a little bit, here and there, and promptly returns the memory to Windows when it’s finished.  This is a relief.  Next stop, Santa Cruz (and hopefully some stable drivers there, too).

    Mark

  25. Ashley Chapman says:

    It could be Realtek’s fault… I didnt particularly like their XP drivers (my front audio port wouldnt work unless I unplugged the speakers from the rear port and plugged them back in!), so it wouldnt surprise me if they hadnt come up with a proper driver for vista yet (although I dont have the front audio problem now)

  26. Ashley, we’re continuing to investigate the issue, it’s possible that the problem is in Realtek’s system effects.

    Don’t forget that after changing the system effects setting, you need to either reboot your machine or restart the Windows Audio service – memory that’s leaked won’t be reclaimed.

  27. Myriam says:

    … same with me. But again more MB.

    I have 1 GB RAM, Asus K8NE board, and the very basic first Realtek-Vista driver (no HD stuff). After reboot it takes around 7MB, after using Media Player or Media Center this audiodg.exe takes all the left memory. all prosses are blocked or very, very slow, because the cpu has constantly 100%. I only can stop it by rebooting.

    I hope it can be solved soon! I’m at this stage not able to use Vista.

    Myriam    

  28. Marius says:

    Hello!

    I’m using a Gigabyte 965P-DS3, too. Furthermore I have an X-Fi Sooundcard installed. My problem with the audiodg.exe does not concern the memory but the cpu usage.

    At the moment, in idle mode, not playing any sounds, it takes up to 9 percent cpu usage (Core 2 Duo @ 3 Ghz). There must be something wrong about it.

    This afternoon, in combination with the spoolsv acting up, it even took up to 48 percent cpu usage.

    I’m looking forward to a fix for this problem.

    P.S.: Soory for language mistakes, I’m german.

  29. Phillip says:

    In addition to the high CPU usage, I am also getting a constant ‘Ding’ sound every 3 seconds from the audiodg.exe. After I removed the audiodg.exe from the Task Manager, the sound will stop. I am using Vista Ultimate and X-fi Platinum with both their beta and official vista driver.

  30. Philipp B says:

    Hi Guys!

    Ive got a Asus a8n sli premium and im using a "Creative X-FI Xtreme Gamer" .

    2 GB Dualchannel Ram

    X2 3800+ @ 2 x 2.6ghz ( 100% stable )

    So now my problem is that my sound breaks down while im playing Counterstrike 1.6. Its like a soundlag every 5 seconds … and sometimes the soundquality in counterstrike sounds like a live amateur record of a concert …

    and when im listing to music with windowsmediaplayer the audiodg.exe needs about 10% cpu power and wmp about 15% …

  31. Jeff says:

    Just wanted to add my unfortunate CPU usage of audiodg.exe…  Playing World of Warcraft with TeamSpeak on Vista RTM…  AudioDG.exe uses between 14-22% just like everyone else here commented.  I’m using SoundBlaster Audigy drivers from Creative that they say are Vista-compatible (although I had to install them in Safe Mode to get around some cryptic messages).

  32. A says:

    I have a 965P-DQ6 v.2 and am using Realtek onboard sound. My problem with audiodg.exe concerns CPU usage. Usage runs over 40% at times.

  33. Bill says:

    Same issue 10%-15% utilization when playing music through windows media player (only thing I’ve tested).

    If I hit pause during playback down to 0%

    Creative Labs X-FI card driver version 6.0.1.1261 (downloaded last week)

    Vista Ultimate

    Intel e6600, 2GB pc8500, evga 680i MB

  34. Weber says:

    Having memory issue… My default format is 16 bit, 44100 hz (CD Quality).

    Thanks

  35. Chris Swinney says:

    Just goggled for audiodg.exe and I too have come across this site as I am having issue with audio on my motherboard.

    I have a DFI Infinity Ultra II with nForce 2 ultra 400 chipset and a Realtek ALC650 on-broad audio chip.

    Vista business installed some Nvidia drivers (MCP Audio Processing and Audio Codec) and although the sound worked, after a while of use it would either degrade or drop out completely. If watching a video, the video system would slow to a crawl. Restarting the Windows Audio and Windows Audio Endpoint Builder service restored the sound for a short while, but really a reboot was needed.

    After checking out the spec of the MB, I realised that a Realtek chip was used so went over the Realtek and downloaded their AC97 Vista drivers. I installed and everything appeared to be fine, but then I notice a couple of issues.

    Firstly, the system is taking an age to boot and almost appear to hang between the green startup bar and the Vista logo being displayed. Secondly, I have no recording devices and if I go onto the "Sound Control Panel" applet and look at the Recording devices, Audiodg.exe immediately starts consuming large amounts of CPU time and the applet hangs. I have to end the Audiodg.exe process and restart the Windows audio drivers to get anything back.

    I still have the Nvidia MCP driver listed in Device manager and cannot uninstall (or at least it doesn’t go away) but I am wondering what the issue might be. Is this an issue with the Realtek drivers or with Audiodg.exe?

    If I get windows to look for an updated Realtek AC97 Codec diver, it reverts back to the NVIDIA(R) nForce(TM) Audio Codec Interface.

    Chris

  36. Chris, you’re going to want to get the AC97 driver that goes with your motherboard, you should either use the XP driver that came with it or go to the DFI web site and see if they have an updated driver.

    Otherwise you’re likely to find all sorts of strange problems.

  37. Nikola says:

    I get processor usage from audiodg.exe only when CMSS-3D is on on my X-fi. Hope that helps. Other built-in effects don’t use software processing and seem to only use the card’s built-in hardware.

  38. Hi Larry,  I’m having trouble getting sound out of a system upgraded to Vista from XP and I believe it’s related to this new audio engine.  Even if I completely remove my Audigy2 ZS and switch over to my on-board AC’97, still no sound.  However, a fresh install of Vista to another partition works perfectly.  Vista level II support and I have tried everything: uninstalling drivers, re-installing drivers, even installing codecs.  I think they’re going to give up on me soon.

    Taking matters into my own hands, I’ve been running Sysinternals Procmon to compare the two Vista installations and it looks like the AudioEng.dll is just not being invoked for sounds in the upgrade Vista.  Is there any way to verify that this engine is installed correctly or re-install it?  Or is there a way to tell the Vista upgrade installer to re-install the engine?

    I want to keep this upgrade installation going and not start over fresh for sentimental reasons.  That’s because this installtion is 13 years old!  That’s right, I’ve been upgrading hardware and Windows versions in this installation since Windows 3.1!  Help me Larry, I don’t want Vista to be the one that breaks the streak!

  39. Errol says:

    OK, so I just read through all the comments posted here and am having a similar problem, I just installed Vista Home Premium and have been running around fixing driver problems over the past two days. One I can’t seem to come to terms with is the audiodg.exe one… it just eats my cpu and memory, hovering between 0 and 20% when IDLE… and jumping to 99% when in itunes playing music.

    I’m running a Creative X-fi Music with brand new Vista drivers… 16 bit sound and 48 KHz quality… I’m also using audio tools to enhance sound, but it’s nothing different than what I used on XP with no problems. I don’t have mobo sound so the sound card is really my only option. Please help!

  40. My 13 year old partition survives yet another upgrade!  I just resovled my problem where there was no sound after upgrading to Vista.  More details can be found here:

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1387492&SiteID=1

    Hopefully, this might help some of you out.

  41. stumped says:

    hello – i have looked tried all sorts of forums but nobody has an answer – thought i’d post here because you understand AUDIODG.EXE  – and i’m desperate 🙁

    Vista ‘beeps’ at odd times – when i navigate aol email, highlight (click on) some functions of some other programs – it plays the default beep – "windows ding.wav" – –> ! there are NO sound themes for these actions! / they never beeped in xp.

    If i delete the windows ding.wav file then my pc speaker beeps instead.

    i ran the program process explorer and noticed there was a little cpu usage for audiog.exe whenever this problem occurred.

    How can i figure out why vista sends a signal to play a sound under these particular circumstances?