The WODM_SETPLAYBACKRATE message requests a waveform output driver to set the playback rate multiplier value for the specified device.
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 waveOutSetPlaybackRate return values in the Win32 SDK.
A client sends the WODM_SETPLAYBACKRATE message by calling the user-mode driver’s wodMessage entry point, passing the specified parameters.
Support for the WODM_SETPLAYBACKRATE message by user-mode drivers is optional. If a driver supports the WODM_SETPLAYBACKRATE message, it must also support WODM_GETPLAYBACKRATE. Additionally, in response to a WODM_GETDEVCAPS message, it must set WAVECAPS_PLAYBACKRATE in the dwSupport member of the WAVEOUTCAPS structure.
Typically, the user-mode driver calls DeviceIoControl to send the kernel-mode driver an IOCTL_WAVE_SET_PLAYBACK_RATE control code. Kernel-mode drivers can implement playback rate changes by skipping or repeating samples. For example, if the playback rate is 2.0, the driver would play every second sample at the original playback rate.
Note: The kernel-mode driver library, soundlib.lib, does not support playback rate changes.