, ,

I’ve had a problem for a while where the Windows process AudioDg.exe constantly runs with a CPU use of around 8-9% even when no audio is playing.  My hardware is a Creative Labs X-Fi (PCI Express) on a Windows 7 SP1 x64 Intel PC.

If you look online, you’ll find people suggesting you disable audio enhancements on the playback device.  I already had this disabled:


Having got fed up of the problem, some hard diagnosis was needed!  AudioDg.exe is a child of a svchost.exe instance that amongst other things hosts the Windows Audio Service.  Here’s a screenshot from Process Explorer with a few columns selected.

Process Explorer

I then viewed the properties of this process and went to the threads tab to see if I’d find a useful clue from the most active thread’s details.


Well ntdll.dll is suitably non-specific.  Next I clicked on the “Stack” button to see if I could find a clue in there.


I suspect the reason is that this process is running with a System Integrity Level (as visible in the first screenshot) whereas Process Explorer only runs at High.

I asked about this on the Sysinternals Forum and someone suggested Xperf.exe to get some details.  I’ve never used that before and whenever I’ve read about it, it gives the impression of requiring you to have understood Mark Russinovich’s Windows Internals books cover to cover to have any idea what to do with its command-line parameters!  OK, perhaps not quite that bad.

I already had a copy of a new Windows Performance Toolkit installed which I had spotted included a much friendlier-looking related tool called the Windows Performance Recorder (WPR).  The first time I launched this, I got the following message:

Disable Paging Executive

This setting can also be enabled with the following command:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v DisablePagingExecutive /t REG_DWORD /d 1 /f

(Don’t forget to revert the registry change after collecting data.)

With WPR open, I looked at the options and ticked “CPU usage” under “Resource Analysis” and then under “Scenario Analysis”, selected the Audio and Video glitches checkboxes cos I do get a little stutter sometimes.  I selected “File” under Logging mode and then while the computer was otherwise idling, clicked “Start” and let it record for a few seconds.


To stop the logging you click “Save” and it generates the ETL file.  This takes a while and then it offers a button to open it in WPA (Windows Performance Analyser).  Here’s how it first looks in there:


“Computation” sounded promising and when expanded yielded a number of alternatives.  I double-clicked the first – “CPU Usage (Simplified)”.


Audiodg.exe is listed there.  I right-clicked it and there was the option “Filter to Selection”.  I expanded its entry to reveal this.


Still not very helpful.  I right-clicked the column headers to see if anything useful-looking could be added in.  One was “Module” which sounded perfect.


So there’s something more concrete – AudioEng.dll.  That’s a Microsoft DLL.  A third-party DLL would have got me suspicious of the need for a driver update.  This on the other hand made me start to re-think whether there was something in some way “normal” going on.  (Expanding its entry didn’t give me anything obviously useful.)

I then had a thought…
My computer is hooked up to an old Marantz amplifier but so I can easily play my XBox 360 through there too, (sometimes along with my PC audio), I have the Audio Output of the XBox connected to the Line Input of the X-Fi card with “Listen to this device” enabled in recording devices.  I imagined this might do some sort of in-card pass-through…


You can guess where this is going.  I unticked that box and the CPU use dropped to a much more normal level and stayed there!