It's almost a year since I installed Vista on my work machine. I sorted out most of the glitches a long time ago but I've not had any sound the whole time, which I kind of learned to live with. I'd pretty much given up trying to fix it, thinking I'd wait for SP1, which I was sure would sort out the problem.
So I saw SP1 RC1 was available and installed it and excitedly tried my sound. Still nothing... OK I thought, now is the time to figure out what the problem is. I tried out some of the SysInternals tools to see if they could provide some kind of useful info, basically to see if the audio subsystem was trying to access a registry key or file that didn't exist or it didn't have access to (I'd already decided it probably wasn't a driver problem since a completely different sound card had exactly the same problem).
I got nowhere with that so I moved onto my next idea, trying to figure out what was going on in the audio log files. If you change the registry key HKLM\System\CurrentControlSet\Control\WMI\AutoLogger\Audio\Start value from 0 to 1, log files get generated in %WINDIR%\system32\LogFiles\Audio (called something like AudioSrv.Evm.001). But I have no idea how to view these log files, they are in some kind of proprietary binary format. So I'd thought I'd harass Larry Osterman. I don't know the guy, but he's the only member of the Windows Audio team who I'm aware of that blogs. But before I had a chance to make a fool of myself I saw a link on one of his comments by someone who'd solved their own Vista sound problem for themselves.
There were two nuggets in there. First up was the suggestion to debug the issue using the WinAudio sample from the Vista SDK. That way, you find out exactly what error message the audio APIs are returning. The second nugget was the solution to his particular problem, which was to delete the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\DefaultAccessPermission. I didn't think it would fix my machine, since I'd followed quite a few other suggestions without success, but I tried it anyway. It didn't work. Or so I thought, until I rebooted and my speakers miraculously started making noise.
So I'm a happy camper, but there's a few things I don't understand. Why is the logging file format not documented? Perhaps it is, but it should be more widely publicised if it is. For that matter, why's it not just a text file? And why doesn't the audio stack just write to the event log like most other Windows components when something goes wrong? If I'd seen something in there saying access was denied to some COM component I'd have a clue what the problem was.
And see this below? That's what I'm listening to. Yes, music!
Addendum for non-technical readers
- From the Windows Start menu, choose 'Run...'.
- Type regedit in the 'Open' text box.
- Navigate to 'Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole
- Delete the registry key 'DefaultAccessPermission'. If it isn't there, chances are this isn't the problem causing your lack of sound.
- Beware that fiddling with your registry can cause system problems if you modify important settings.