The WODM_RESET message requests a waveform output driver to stop sending output data and return all output buffers to the client.
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.
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.