The following suggestions were derived from a discussion thread on the the WDM Audio Developers mailing list. Disclaimer: These suggestions are not from Microsoft, and may not be the preferred solution to the problem being discussed, but are being published here because they did solve the problem in these specific examples.
Q: We've had reports that installing Windows Vista SP1 removes all of the 24-bit formats from the Advanced tab for devices in the Sound control panel. Is there anything that would have changed with SP1 that would cause this?
A1: Check your DataRangeIntersection handler and make sure it's not rejecting PKSDATARANGE_AUDIO requests with MaximumBitsPerSample set to 24. Although the WDK documentation (under "PCM High Bitdepth Stream Data Range") says that MaximumBitsPerSample is set to the container size (in this case 32 bits), Vista doesn't. The RTM build of Vista ignored a STATUS_NO_MATCH return, but SP1 doesn't and therefore disallows all 24-bit formats. Make the DataRangeIntersection handler accept a MaximumBitsPerSample value of 24, and everything should work.
A2: If the pWaveFormatEx->dwChannelMask returned by DataRangeIntersection() is set to KSAUDIO_SPEAKER_DIRECTOUT, no 24-bit formats show up in Windows Vista SP1, as they did in earlier OS releases (including Windows Vista RTM). Setting pWaveFormatEx->dwChannelMask to KSAUDIO_SPEAKER_STEREO makes the 24-bit formats reappear.