14.4. Mid level drivers (MCI)

The mid level drivers are represented by some common API functions, mostly mciSendCommand and mciSendString. Wine implements several MCI mid level drivers.

Table 14-2. Wine MCI drivers

MCI NameDLL NameRoleLocationComments
CdAudioMciCDA.drvMCI interface to a CD audio playerdlls/winmm/mcicda/ Relies on NTDLL CdRom raw interface (through DeviceIoControl).
WaveAudioMciWave.drv MCI interface for wave playback and record dlls/winmm/mciwave/It uses the low level audio API.
SequencerMciSeq.drvMidi Sequencer (playback)dlls/winmm/mciseq/It uses the low level midi APIs
AviVideoMciAvi.drvAVI playback and recorddlls/winmm/mciavi/ It rather heavily relies on MSVIDEO/MSVFW32 DLLs pair to work.
The MCI Name column is the name of the MCI driver, as it is searched in configuration. The DLL Name column is the name of the DLL the configuration provides as a value. The name listed here is the default one (see the configuration section for the details).

Adding a new MCI driver is just a matter of writing the corresponding DLL with the correct interface (see existing MCI drivers for the details), and to provide the relevant setup information for wine.inf