Page Two
Audio I/O, Today and Tomorrow
continued

Page 1  3   4

 

 

 

 

Observation 1: Too many drivers

Supporting both Win9x and WinNT requires writing two different kernel mode drivers (a .VxD and a .SYS driver). On top of that, supporting MME, ASIO and EASI requires writing three different user-mode drivers.

  • In order to support all popular platforms and API’s, hardware vendors must implement, test and support five different audio driver components.

Observation 2: Not enough kernel mode support

Some vendors never leave kernel mode to do their processing. Obvious examples of this are the WDM KMixer and DirectMusic software synthesizers. Furthermore, DAW vendors need the option of moving more of their mixing and DSP into kernel mode.

  • User-mode APIs such as DirectX, ASIO or EASI do not provide adequate support for kernel mode processing.

Observation 3: The term "driver" is misunderstood

Referring back to the four steps of driver development, we see that all paths of driver development lead through the DDK. Only the DDK provides the tools for interfacing to hardware in a standard way. The majority of interfacing to hardware must be done in kernel mode, within a VxD or SYS file.

  • A true "driver" runs in the kernel and is packaged as a VxD or SYS files. Technologies like MME, ASIO and EASI are merely user-mode APIs, not drivers.

Conclusion

The best way to manage driver complexity while providing adequate support for future technologies is to provide a single kernel-mode audio driver. A single kernel-mode driver is in fact the hallmark of the Win32 Driver Model.

The Win32 Driver Model (WDM)

WDM is Microsoft’s vision of simplifying driver development, providing a unified driver model for both consumer and commercial O/S’s, and providing a migration path towards future O/S offerings. In this section we shall examine how close WDM comes to achieving this ideal, and the relevance of WDM to audio streaming.

WDM Overview

WDM works across the Win9x and Win2k platforms. A driver written to the WDM specifications will be source-code compatible on all Win9x platforms (starting with Win98SE) and Win2k. Most drivers are even binary compatible across these platforms. This implies that hardware companies can develop a single kernel-mode driver, period.


Copyright © 2000- Microsoft Corporation.

 

Page

1   3   4