Well, yes, we *should* be using descriptors that accurately describe the device. But... If I use type KSNODETYPE_ANALOG_CONNECTOR for my inputs, which worked fine under Windows XP, it doesn't work in Windows Vista (no record device shown in dialog). I have to change to KSNODETYPE_LINE_CONNECTOR. That isn't such a big deal, but I needed to change it to get a device that worked fine under Windows XP to appear under Windows Vista. On the output side, I had to use type KSNODETYPE_SPEAKER in Windows XP in order to get the "speaker" icon in the system tray that lets the user get to the mixer. I can change that to KSNODETYPE_LINE_CONNECTOR (or KSNODETYPE_SPDIF_INTERFACE for digital outputs), and that makes things look nicer in the Windows Vista control panel. But, like I said, those node types cause loss of functionality under Windows XP. We ended up having the driver dynamically change the descriptors at load time when it detected it was running on Windows Vista. That way, we can get a better user experience in both Windows XP and Windows Vista. I guess the "silver lining" is that this provided my first opportunity to use (abuse?) const_cast<>()... ;-) But the Really Big Problem for our customers is that Windows Vista has taken control of sample rate and bit depth away from the part of the system that knows what it's supposed to be (the application, either from the RIFF header or a user-selected project setting), moving it instead to a per-input/output control panel page that's buried three levels deep. Our multi-channel users have to drill down to that page for EVERY input and EVERY output to change the sample rate and bit depth each time they want to run their audio app at a different sample rate or bit depth. If they forget (or if they make a mistake), the OS won't warn them; it'll just monkey with the audio data (SRC, dithering, truncation, etc.), transforming it from what the user requested into whatever the control panel is set to (or vice-versa). The user won't find out until later, when they discover their audio data isn't what it's supposed to be. Of course, then it's too late. Is there any chance we can get a patch / shim / whatever that lets existing audio applications control sample rate and bit depth again? If our customers ask us, we're currently recommending they stay with Windows XP for now. I'd like to not have to do that. A related question is: I know there's a shim that lets apps get to the mixer APIs. And I can right-click on an app and select "Windows XP compatibility mode", and that'll let the app get to the mixer APIs. But it seems like there should be a way to do this at installation time. Is there an INF directive I can throw in that'll enable XP compatibility mode for a particular app? Best regards, -Dan -- Dan Germann Digital Audio Labs -----Original Message----- From: Hakon Strande <hakons@xxxxxxxxxxxxxxxxxxxxx> Date: Mon, 10 Mar 2008 15:47:53 -0700 Subject: [wdmaudiodev] Re: Exposing a topology to Vista I would like to ask the community to please use the exact ksnodetype that matches the device you are connecting to Windows. These form factor hints are used by the system for policy decisions. If the logical device is a pair of headphones then please use the KSNODETYPE that matches that form factor device (in that case KSNODETYPE_HEADPHONES) You can read more about how device topology works in Windows Vista here: http://ampalliance.org/files/folders/summit_decks/entry53.aspx [cid:image001.png@01C882C6.1A0A5780] [cid:image002.png@01C882C6.1A0A5780] More info relating to Windows Vista and audio: http://ampalliance.org/blogs/microsoft/archive/2007/08/14/Microsoft-AMP-Summ it-Decks.aspx Sincerely, Hakon Strande<mailto:HakonS@xxxxxxxxxxxxx> | Windows Sound Team PM | (p) 425.705.0637 ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/