An application that controls a multimedia driver is an integral part of the driver operation. For example, a video-capture application that doesn't use the AVICap window class allocates the memory used for audio and video capture and manages the data buffers used to transfer data. If audio is to be captured simultaneously with video, the application also controls the audio driver used for capturing the input audio. Once the video and audio drivers capture the data, the application has the responsibility for any post-processing of this data. For example, for the application to save the data as an AVI file, it must add the appropriate headers and create the AVI RIFF structure saved in the disk file.
Windows provides the interface between applications and device drivers - applications do not call the drivers directly. When an application calls a function, Windows translates the call into a message and sends the message to the appropriate device driver. When a device driver must notify a client of an event, it calls MMSYSTEM with a message, and MMSYSTEM routes the message back to the client application.
The term client application is sometimes used to describe the Windows interface from the device driver's perspective. The client application can include the Windows environment as well as the application that is controlling multimedia operation.
The following table summarizes the DLLs Windows requires to provide access to multimedia audio and video device drivers.
This DLL | Provides an interface to these drivers |
MMSYSTEM.DLL | Waveform MIDI Auxiliary |
MSVIDEO.DLL | Video capture, compression and decompression, rendering |
MSACM.DRV | Audio compression and decompression mapper |
MSACM.DLL | Compression and system management for the ACM |