Custom Audio Driver Type Decision Tree

Use this decision tree with Step 3 of Roadmap for Developing WDM Audio Drivers. The tree helps you determine the type of audio driver to learn about. The system-supplied port class driver (PortCls) provides a set of port drivers that implement most of the basic functionality. These port drivers simplify the development process for the driver developer. High definition (HD) audio and AC97 drivers are typically based on the PortCls class driver, whereas USB and 1394 drivers are usually based on the AVStream class.

diagram of decision tree for choosing an audio driver type

If your audio device is based on the universal audio architecture (UAA) standard, it is UAA-compatible. A UAA-compatible audio device can use the system-supplied UAA class drivers and does not need a custom driver, but you can provide your own Windows Audio Processing Objects.

If your audio device is not UAA-compatible or it is UAA-compatible but you want to implement customized features, you must decide whether you want to develop a driver with Bus Master DMA support. If you want to provide Bus Master DMA support, for example, you must develop a PortCls-based audio driver.

For information about how to develop custom audio drivers and how to choose a port driver, see the following topics:

Custom Audio Drivers
Provides an overview of PortCls and AVStream audio drivers and discusses the pros and cons of each type.

AVStream Overview
Provides an architectural overview of AVStream-based drivers and highlights the cases where this type of driver is the best choice.

You must also decide about the data format that your audio driver will use and the range of formats it will support. For more information about data formats and ranges, see Audio Data Formats and Data Ranges.

To complete steps for audio driver development, see Roadmap for Developing WDM Audio Drivers.