The WIDM_PREPARE message requests a waveform input driver to prepare a system-exclusive data buffer for input.
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 waveInPrepareHeader return values in the Win32 SDK.
A client sends the WIDM_PREPARE message by calling the user-mode driver’s widMessage entry point, passing the specified parameters.
Support for this message by user-mode drivers is optional. If the driver supports WIDM_PREPARE, it must also support WIDM_UNPREPARE.
If the driver returns MMSYSERR_NOTSUPPORTED, winmm.dll prepares the buffer for use. For most drivers, this behavior is sufficient. If the driver does perform buffer preparation, it must set WHDR_PREPARED in the dwFlags member of WAVEHDR and return MMSYSERR_NOERROR.
For additional information, see Transferring Waveform Input Data.