The architecture of the multimedia services 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 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 function call into a call to an audio device driver:
This illustration is not available for this release
Some function calls might result in multiple driver calls, or they might be handled by MMSYSTEM without causing any driver calls.