IAudioVolumeLevel interface

The IAudioVolumeLevel interface provides access to a hardware volume control. The client obtains a reference to the IAudioVolumeLevel interface of a subunit by calling the IPart::Activate method with parameter refiid set to REFIID IID_IAudioVolumeLevel. The call to IPart::Activate succeeds only if the subunit supports the IAudioVolumeLevel interface. Only a subunit object that represents a hardware volume-level control will support this interface.

The IAudioVolumeLevel interface provides per-channel controls for setting and getting the gain or attenuation levels in an the audio stream. If a volume-level hardware control can only attenuate the channels in the audio stream, then the maximum volume level for any channel is 0 dB. If a volume-level control can provide gain (amplification), then the maximum volume level is greater than 0 dB.

Most Windows audio adapter drivers support the Windows Driver Model (WDM) and use kernel-streaming (KS) properties to represent the hardware control parameters in subunits (referred to as KS nodes). The IAudioVolumeLevel interface provides convenient access to the KSPROPERTY_AUDIO_VOLUMELEVEL property of a subunit that has a subtype GUID value of KSNODETYPE_VOLUME. To obtain the subtype GUID of a subunit, call the IPart::GetSubType method. For more information about KS properties and KS node types, see the Windows DDK documentation.


The IAudioVolumeLevel interface has these methods.

Method Description


Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header devicetopology.h

See Also

Core Audio Interfaces

DeviceTopology API


IPerChannelDbLevel Interface