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.