The Standard Audio Driver, mmdrv.dll
Microsoft provides a standard user-mode audio driver for Windows NT, called mmdrv.dll. It is a combination driver that supports waveform input and output devices, MIDI input and output devices, and auxiliary audio devices. It provides the user-mode audio driver entry points and support functions necessary for handling all of these device types.
If you are providing driver support for new audio hardware, you might be able to use mmdrv.dll as your user-mode driver. You can use mmdrv.dll if it provides access to all of the functionality provided by your kernel-mode driver. If you are able to use mmdrv.dll as your user-mode driver, then you only need to write a kernel-mode driver for your hardware.
If you want to use mmdrv.dll functionality but need to provide customized installation and configuration operations, consider using drvlib.lib, which is a library you can use to construct a customized user-mode driver, instead of using mmdrv.dll.
You can even use mmdrv.dll and drvlib.lib in combination. The user-mode driver for the Creative Labs Sound Blasterä does this. See Sample Audio Drivers and Examining sndblst.sys.
The MS-DOS device names supported by mmdrv.dll are defined in the ntddwave.h, ntddmidi.h, and ntddaux.h files. MS-DOS names are prepended with “\\.\”, as in “\\.\WaveOut0”.
Source code for mmdrv.dll is included with this DDK.