The WODM_RESET message requests a waveform output driver to stop sending output data and return all output buffers to the client.
Parameters
uDeviceId
Device identifier (0, 1, 2, and so on) for the target device.
uMsg
WODM_RESET
dwUser
Device instance identifier.
dwParam1
Not used.
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 waveOutReset return values in the Win32 SDK.
Comments
A client sends the WODM_RESET message by calling the user-mode driver's wodMessage entry point, passing the specified parameters.
If the driver's output queue contains any output buffers (see WODM_WRITE) whose contents have not been sent to the kernel-mode driver, the driver should set the WHDR_DONE flag and clear the WDR_INQUEUE flag in each buffer's WAVEHDR structure The driver should then send the client a WOM_DONE callback message for each buffer.
The driver should reset its position count to zero. If playback is paused, the driver should also take itself out of the paused state.
Typically, the user-mode driver stops device output by calling DeviceIoControl, sending the kernel-mode driver an IOCTL_WAVE_SET_STATE control code.
For additional information, see Transferring Waveform Output Data.