This message is used in an MMDRV_MESSAGE_PARAMS structure passed to the WAV_IOControl function to request a waveform input driver to close a specified device instance previously opened with WIDM_OPEN.
MMSYSERR_NOERROR indicates success. Otherwise, the driver returns one of the MMSYSERR or WAVERR error values declared in the Mmsystem.h header file.
The ACM (Waveapi.dll) sends the WIDM_CLOSE message by calling the audio driver’s (Wavedev.dll) WAV_IOControl entry point through the DeviceIoControl function.
If the driver has not filled and returned all the buffers received with WIDM_ADDBUFFER messages, it does not close the instance. Instead, it returns WAVERR_STILLPLAYING.
After the driver closes the device instance, it sends a WIM_CLOSE callback message to the ACM.