13.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 13-1. Wine MCI drivers

MCI NameDLL NameRoleLocationComments
CdAudiomcicdaMCI interface to a CD audio playerdlls/mcicda Relies on NTDLL CD-ROM raw interface (through DeviceIoControl).
WaveAudiomciwave MCI interface for wave playback and record dlls/mciwaveIt uses the low level audio API.
SequencermciseqMidi Sequencer (playback)dlls/mciseqIt uses the low level midi APIs
AviVideomciavi32AVI playback and recorddlls/mciavi32 It rather heavily relies on msvfw32 DLL 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.