The WODM_SETVOLUME message requests a waveform output driver to set the volume level for the specified device.
Parameters
uDeviceId
Device identifier (0, 1, 2, and so on) for the target device.
uMsg
WODM_SETVOLUME
dwUser
Device instance identifier.
dwParam1
Pointer to a DWORD location to receive the volume setting.
dwParam2
Not used.
Return Value
The driver should return MMSYSERR_NOERROR if the operation succeeds. Otherwise it should return one of the MMSYSERR or WAVERR error codes defined in mmsystem.h. See waveOutSetVolume return values in the Win32 SDK.
Comments
A client sends the WODM_SETVOLUME message by calling the user-mode driver's wodMessage entry point, passing the specified parameters.
Support for this message by user-mode drivers is optional. If the driver supports WODM_SETVOLUME, it must support WODM_GETVOLUME.
The volume value is returned in the DWORD pointed to by dwParam1 as follows.
Channel | Portion of dwParam1 Used |
Left channel | Low word |
Right channel | High word |
Single channel | Low word |
A value of zero is silence, and a value of 0xFFFF is full volume.
Typically, the user-mode driver calls DeviceIoControl to send the kernel-mode driver an IOCTL_WAVE_SET_VOLUME control code.