Handling the DRV_DISABLE Message

It is possible for a driver to receive a DRV_DISABLE message while it is in the process of sending or receiving audio data. Audio device drivers should follow the behavior specified in the following table when they receive a DRV_DISABLE/DRV_ENABLE message pair:

Driver Type Disable/Enable Behavior
waveform output As if the driver were paused with a WODM_PAUSE message and then restarted with a WODM_RESTART message.
waveform input As if the driver were stopped with a WIDM_STOP message and then restarted with a WIDM_START message.
MIDI output If the driver is asynchronous, stop output when disabled and continue when reenabled.
MIDI input As if the driver were stopped with a MIDM_STOP message and then restarted with a MIDM_START message.

Most audio device drivers will be interrupt-driven. For example, a waveform output device interrupts when the device needs another data block. A MIDI input device interrupts when the device receives a MIDI event at its input port.