What happens when audio rendering fails?

Skywing sent me an email earlier today asking me essentially “Why doesn’t Windows do a better job of handling the case where the default audio device goes away?”[1] It’s a good question, and one that we’ve spent a lot of time working on for quite some time (this isn’t a new issue for Vista, it’s…


An Overview of Windows Sound and "Glitching" Issues

Nick White over at the Windows Vista Blog just posted an article written by Steve Ball, the PM in charge of the sounds team.   It does a pretty good job of covering why my $2000 PCs sometimes glitches like crazy, while my $20 CD player works perfectly every single time.   It’s worth a read.


Why do people think that Windows is "easy"?

Every once in a while, someone sends me mail (or a pointer to a blog post) and asks “Why can’t you guys do something like that?“.  The implication seems to be that Windows would be so much better if we simply rewrote the operating system using technology <foo>. And maybe they’re right.  Maybe Windows would…


"Memory Leak" when using the Vista Audio API notification routines

We recently got an internal report from someone using the internal audio notification APIs that they were leaking memory and they wanted to help from us debugging the problem. I took a look and discovered that the problem was a circular reference that was created when they called: CFoo::Initialize(){    <SNIP>     hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL,…


Every threat model diagram should tell a story.

Adam Shostack has another threat modeling post up on the SDL blog entitled “Threat Modeling Self Checks and Rules of Thumb“.  In it, he talks about threat models and diagrams (and he corrects a mistake in my “rules of thumb” post (thanks Adam)). There’s one thing he mentions that is really important (and has come…


The evolution of a data structure – the WAVEFORMAT.

In the beginning, there was a need to be able to describe the format contained in a stream of audio data. And thus the WAVEFORMAT structure was born in Windows 3.1. typedef struct WAVEFORMAT {        WORD    wFormatTag;        WORD    nChannels;        DWORD   nSamplesPerSec;        DWORD   nAvgBytesPerSec;        WORD    nBlockAlign;} WAVEFORMAT; The problem with the WAVEFORMAT is that it was…


Larry and the "Ping of Death"

Also known as “Larry mounts a DDOS attack against every single machine running Windows NT” Or: No stupid mistake goes unremembered.   I was recently in the office of a very senior person at Microsoft debugging a problem on his machine.  He introduced himself, and commented “We’ve never met, but I’ve heard of you.  Something…


Sorry about not posting…

Work got a bit insane last week (work fell on me like a ton of bricks), then on Thursday I left to go on a vacation to visit family back east, so no posts in a while. On the other hand, we all had a great time, and got to meet up with the family….


Hold on, I know this "old guy"…

Last week, I’d noticed headlines about a California appeals court reinstating an age discrimination suit brought by a “Google manager”.  I sort-of ignored it, because I thought it didn’t affect me in any meaningful way.  Then this morning, I ran into Lauren Weinstein’s post about this and realized that the “old guy” was Brian Reid….


Must my service name have the name of the executable in which it’s contained?

It must be psychic debugging week ’round here.  I received the following email on an internal mailing list earlier today: Regarding windows service with ServiceType “SERVICE_WIN32_SHARE_PROCESS”, is there a restriction on the service name such that it can only take the same name as the service executable? I can install a service with share process…