Sndvol.exe does not use the DeviceTopology APIs (which I assume you are referring to since you mentioned IAudioVolumeLevel). For device volume, it uses the EndpointVolume APIs. If I recall correctly, the EndpointVolume APIs return the last set value rather than "snapping" to the closest hardware supported value. Frank Yerrace Microsoft Corporation This posting is provided "AS IS" with no warranties, and confers no rights. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of wdmaudiodev@xxxxxxxxxxxxxxxxxx Sent: Monday, December 04, 2006 9:50 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re[2]: Few questions about core Audio APIs in Vista Mitch, Thank you for the explanation. A1. Do you plan to add this method in the future? We have some interesting ideas, but can't implement because there is no way... A2. I've supposed that. However, I think this is not best practice when users set one volume level in Sndvol.exe but when they reopen it the value is different. Furthermore, a difference may be big with linear volume setup (e.g. they set 80 but returned 90 and so on), so the users will be confused. My opinion is the driver must always return original value set even if it support only the levels of multiple of *pfStepping. Sincerely, Andrew Original Message Follows: ------------------------ A1. Sorry, but there is no public method for enumerating all of the audio sessions. A2. Most hardware volume controls have .5, 1 or 1.5dB steps. Whether the hardware returns the actual volume level (e.g. -5dB) or the last value set (e.g. -5.02dB) depends on the driver, but in general you should expect that the level will be a multiple of *pfStepping. Regards, Mitch Rundle Microsoft This posting is provided "AS IS" with no warranties, and confers no rights. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Andrew Mindrin Sent: Thursday, November 30, 2006 11:09 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Few questions about core Audio APIs in Vista Hi, The questions are: Q1. Enumerating all audio sessions ---------------------------------- I need to enumerate all audio sessions in Vista to take control over them like Sndvol.exe. Is there a way? I need that to create custom volume control software. I've tried to play with WASAPI, but it is possible only to create new session or to open a sessions of current process created by high-level API. Q2. Volume levels in Vista -------------------------- I've noticed that some sound drivers for Vista doesn't support precise volume setup. E.g. with the latest driver from Creative (2.11.0000) when I set volume by using IAudioVolumeLevel::SetLevel to e.g. -5.02 dB and then has read it by using IAudioVolumeLevel::GetLevel, the result is -5 dB instead of -5.02 dB. Is this driver bug or volume level in Vista can be set\read only with a step returned by GetLevelRange method (pfStepping parameter)? If this is not a bug, how to set\read precise levels? Many thanks, Andrew ****************** 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/ ****************** 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/