<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-
1252">
<META NAME="Generator" CONTENT="Microsoft FrontPage 5.0">
<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 this directory.<P>
The .inf file (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>This sample supports Digital Rights Management for audio (DRM). The sources file has a flag to enable DRM. Note that you will need additional header files for DRM support (<a href="http://www.microsoft.com/hwdev/audio">http://www.microsoft.com/hwdev/audio</a>).
<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 sample driver shows how to implement event callbacks. However, only Vibra class devices with C16X mixers (CT4170) support this functionality, and this sample driver doesn't support Vibra class devices.<p>
2. 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>
3. Under some circumstances, wave audio may hang up when the rendering stream is frequently stopped and started. This intermittent problem is specific to SB16 hardware.<p>
<H3>CODE TOUR</H3>
<H4>File Manifest</H4>
</FONT><U><PRE>File Description
</U>
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
</pre>
<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>© Microsoft Corporation 1999-2000</FONT><FONT FACE="Verdana" SIZE=2> </P></FONT></BODY>
</HTML>