<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-
1252">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>SoundBlaster16</TITLE>
</HEAD>
<BODY LINK="#0000ff">

<FONT FACE="Verdana" SIZE=5><H2>SoundBlaster16</H2>
</FONT><FONT FACE="Verdana" SIZE=2>
<P><span style="color:#FF0000;font-size:10pt;font-family:Arial">[This is preliminary 
documentation and subject to change.]</span></P>

<H3>SUMMARY</H3></FONT><FONT FACE="Verdana" SIZE=2><P>
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.

<H3>BUILDING THE SAMPLE</H3></FONT><FONT FACE="Verdana" 
SIZE=2><P>
To build this sample, enter the free or checked build environment and run <B>build</B> from the \\Ntddk\Src\Audio directory, rather than the Sb16 subdirectory. This sample links with Stdunk.lib, which is also built if you run </B>build</B> from \\Ntddk\Src\Audio.<P>

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.  <P>

<H3>DRIVER ISSUES</H3></FONT><FONT FACE="Verdana" 
SIZE=2><P>
Developers should be aware of the following issues when testing or otherwise using this sample driver.<p>

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 <I>not</I> a bug with the FMSynth miniport or other aspect of the sample driver.  It is simply a result of not initializing the AWE devnode.<p>

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.<p>

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

<H3>CODE TOUR</H3>
<H4>File Manifest</H4>
</FONT><U><PRE>File&#9;&#9;Description
</U>
Adapter.cpp&#9;Connects the driver with the system
Common.cpp&#9;Common object used by all miniports
Common.h &#9;Header file for the common object
Makefile&#9;Standard Windows NT makefile
Mintopo.cpp&#9;Implementation of the topology miniport
Mintopo.h&#9;Header file for the topology miniport
Minwave.cpp&#9;Implementation of the wave cyclic miniport and the stream object
Minwave.h&#9;Header file for the wave cyclic miniport and the stream object
Mssb16.inf&#9;Setup information
Readme.htm&#9;The documentation for this driver (this file)
Sb16.rc&#9;	Resource file containing version information
Sources&#9;	Dependency information for compiling
Tables.h&#9;Topology and property tables

</FONT><P ALIGN="CENTER"><A HREF="#top"><FONT FACE="Verdana" SIZE=2>Top of page</FONT></A><FONT FACE="Verdana" SIZE=2> </P></FONT>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=624>
<TR><TD VALIGN="MIDDLE" BGCOLOR="#00ffff" HEIGHT=2>
<P></TD>
</TR>
</TABLE>

<FONT FACE="MS Sans Serif" SIZE=1><P>&copy; Microsoft Corporation 1999</FONT><FONT FACE="Verdana" SIZE=2> </P></FONT></BODY>
</HTML>

