The architecture of the Multimedia extensions is designed around the concepts of extensibility and device-independence. Extensibility allows the software architecture to easily accommodate advances in technology without changes to the architecture itself. Device-independence allows multimedia applications to be easily developed that will run on a wide range of hardware providing different levels of multimedia support.
Three design elements of the system software provide extensibility and device-independence:
A translation layer (MMSYSTEM) that isolates applications from device drivers and centralizes device-independent code.
Run-time linking that allows the MMSYSTEM translation layer to link to the drivers it needs.
A well-defined and consistent driver interface that minimizes special-case code and makes the installation and upgrade process easier.
In the following illustration, you can see how the translation layer translates a Multimedia extensions function call into a call to an audio device driver.
Some function calls might result in multiple driver calls, or they might be handled by MMSYSTEM without causing any driver calls.