Audio compression manager drivers, also known as ACM drivers, are called by the Windows CE Wave API Manager. The Wave API Manager sends messages to ACM drivers when applications need to play or record sounds. ACM drivers are responsible for responding to these messages to do the work of sound playback and recording. The two main reasons for writing an ACM driver are:
Like many kinds of Windows CE device driver, ACM drivers are installable device drivers, expose the standard stream I/O functions, and are managed by the Device Manager. All ACM drivers must use "ACM" as their device filename prefix. Multiple ACM drivers that are installed on a Windows CE system differentiate themselves by using the [Index] key in their registry settings. Thus, they end up with the special device filenames "ACM1:", "ACM2:", and so on. A maximum of ten ACM drivers can be installed at one time. The Wave API Manager also uses the Index keys when searching for an ACM driver to perform format conversions. The first ACM driver found that can handle the conversion is used. For more details, see Device Filename Prefixes and Registry Keys Related to Windows CE Device drivers.
The messages that ACM drivers must respond to are very similar to those used by ACM drivers written for Microsoft Windows NT. The Windows CE Wave API Manager uses an ACM drivers' ACM_IOControl function to pass messages to the driver. The other stream I/O functions are not used except for setup and shutdown tasks.