## SoundBlaster16

[This is preliminary documentation and subject to change.]

### SUMMARY

This sample driver demonstrates the basics of writing a WDM audio driver, and can be used to write your own WDM driver. It will work with any SoundBlaster 16-compatible audio card, but may not use all of the functionality. Please see both the "Driver Issues" section below and the comments in the driver, which will help you add functionality like Power Management to your driver.

### BUILDING THE SAMPLE

To build this sample, enter the free or checked build environment and run build from the \\Ntddk\Src\Audio directory, rather than the Sb16 subdirectory. This sample links with Stdunk.lib, which is also built if you run build from \\Ntddk\Src\Audio.

The .inf included in the \\98ddk\Src\Audio\Sb16 directory (Mssb16.inf) can be used to install the sample driver after it has been built. Simply copy the .inf and the driver binary to a floppy disk. Then install the sample from the floppy. Once the driver has been installed successfully with the .inf, simply drop updated driver binaries into \Windows\System32\Drivers on the target machine and reboot to test the new driver.

### DRIVER ISSUES

Developers should be aware of the following issues when testing or otherwise using this sample driver.

1. This driver does not support the AWE portion of AWE-capable devices such as the AWE32 or AWE64. Since the sample driver does not service the AWE devnode, it does not initialize the AWE devnode. As a result, MIDI played back using the FM synth will not be audible. This is not a bug with the FMSynth miniport or other aspect of the sample driver. It is simply a result of not initializing the AWE devnode.

2. Under some circumstances, wave audio may hang up when the rendering stream is frequently stopped and started. This intermittent problem is specific to the SB hardware.

3. This sample driver does not properly support Vibra class devices.

### CODE TOUR

#### File Manifest

    File		Description

Adapter.cpp Connects the driver with the system Common.cpp Common object used by all miniports Common.h Header file for the common object Makefile Standard Windows NT makefile Mintopo.cpp Implementation of the topology miniport Mintopo.h Header file for the topology miniport Minwave.cpp Implementation of the wave cyclic miniport and the stream object Minwave.h Header file for the wave cyclic miniport and the stream object Mssb16.inf Setup information Readme.htm The documentation for this driver (this file) Sb16.rc Resource file containing version information Sources Dependency information for compiling Tables.h Topology and property tables

Top of page

© Microsoft Corporation 1999