windows-nt/Source/XPSP1/NT/drivers/ddk/wdmaudio/ac97/driver
..
ac97reg.h
ac97smpl.inf
ac97smpl.rc
adapter.cpp
adapter.h
common.cpp
common.h
debug.h
guids.h
ichreg.h
ichwave.cpp
ichwave.h
makefile
mintopo.cpp
mintopo.h
minwave.cpp
minwave.h
prophnd.cpp
readme.htm
shared.h
sources

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=FrontPage.Editor.Document>
<meta name=Generator content="Microsoft FrontPage 5.0">
<meta name=Originator content="Microsoft Word 10">
<title>AC97</title>
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:536871559 0 0 0 415 0;}
@font-face
	{font-family:"MS Sans Serif";
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman"; margin-left:0in; margin-right:0in; margin-top:0in}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
p
	{mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
pre
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Courier New";}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman"}
</style>
<![endif]-->
</head>

<body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>

<div class=Section1>

<h2><span style='font-family:Verdana'>AC97 WDM Audio Driver Sample<o:p></o:p></span></h2>

<p><span style='font-size:10.0pt;font-family:Arial;color:red'>[This is
preliminary documentation and subject to change.]</span><span style='font-size:
10.0pt;font-family:Verdana'><o:p></o:p></span></p>

<h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>

<p><span style='font-size:10.0pt;font-family:Verdana'>This sample driver
demonstrates the basics of writing a WDM audio driver. The sample driver should
work with any AC97 codec connected to an Intel<65> motherboard with integrated
AC97 controller, like the Intel 810 Chipset. The sample driver supports multi
channel audio and builds a mixer topology depending on the AC97 codec in the
system.<o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>Its functionality may be
expanded for non-AC97 design features or to convert the driver to use a
different DMA engine. For more information, please see the &quot;Driver
Issues&quot; section below. <o:p></o:p></span></p>

<h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>

<p><span style='font-size:10.0pt;font-family:Verdana'>To build this sample,
enter any Windows .NET or Windows XP build environment and run <b>build</b><b
style='mso-bidi-font-weight:normal'> <20><span class=SpellE>cZ</span></b> from the
AC97 directory (parent directory).</span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>The INF file named
<0A>AC97smpl.inf<6E> included in the AC97 subdirectory (parent directory) 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 and then update the driver for the device
with the one from the floppy. Note however, that the INF file tries to install
the <span class=SpellE>proppage</span> sample and may want additional binaries.
Please refer to the <20><span class=SpellE>readme</span><3E> in the parent directory
for more information.<o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>Once the driver has been
installed with the INF, the driver may be updated by copying the binary into
%SystemRoot%\System32\Drivers on the target machine and rebooting to test the
new driver, provided that there are no INF changes.<o:p></o:p></span></p>

<h3><span style='font-family:Verdana'>DRIVER ISSUES<o:p></o:p></span></h3>

<p><span style='font-size:10.0pt;font-family:Verdana'>1. At the time of
writing, there is no AC97 implementation available for Alpha or IA64
machines<65>therefore, the DDK sample source does not install on Alpha or IA64 machines.
<o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>2. This driver supports
the old Intel 810/820/840 implementation as well as the new Intel 815/820
implementation (82801BA/BAM). This new chipset supports multi channel AC97 <span
class=SpellE>codecs</span>, but the sample driver will only run satisfactorily
with 100% AC97 compatible <span class=SpellE>codecs</span>. The double data
rate playback (96KHz, for example) feature is unsupported by those chipsets and
therefore also in the driver. <o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>3. The AC97 low-priority
Microphone recording capability is disabled. You can record using Microphone as
you would record from any other source (for example, a CD) using the normal
recording selector, but the second recording line that is optionally defined in
the AC97 specification is disabled. <o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>4. The AC97 inputs
reported to the operating system may be disabled through the INF. The INF has a
section where you can disable specific input lines of the codec that are not
attached to any adapters. <o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>5. This driver works with
Microsoft<66> Windows<77> 2000 (or later) and Microsoft Windows 98 Second Edition (or
later) only. It will neither run nor install on the original release of
Microsoft Windows 98. <o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>6. Due to HW constrains
in the Intel 440MX chipset, this driver cannot run reliably on this chipset.
Therefore, please do not add PnP IDs that contain PCI\VEN_8086&amp;DEV_7195.<o:p></o:p></span></p>

<h3><span lang=FR style='font-family:Verdana;mso-ansi-language:FR'>CODE TOUR<o:p></o:p></span></h3>

<h4><span lang=FR style='font-family:Verdana;mso-ansi-language:FR'>File
Manifest<o:p></o:p></span></h4>

<pre><u><span lang=FR style='mso-ansi-language:FR'>File<span style='mso-tab-count:
2'><3E><><A0><A0><A0><A0><A0><A0><A0><A0> </span>Description<o:p></o:p></span></u></pre><pre><span lang=FR
style='mso-ansi-language:FR'><o:p>&nbsp;</o:p></span></pre><pre>Ac97reg.h<span style='mso-spacerun:yes'><3E><> </span><span
style='mso-tab-count:1'><3E><> </span>Definition of the AC97 registers</pre><pre>Ac97smpl.inf<span
style='mso-tab-count:1'><3E><> </span>Setup information</pre><pre>Ac97smpl.rc <span
style='mso-tab-count:1'><3E><> </span>Resource file containing version information</pre><pre><span
class=SpellE>Adapter.cpp</span> <span style='mso-tab-count:1'><3E><> </span>Connects driver with the system</pre><pre><span
class=SpellE>Adapter.h</span><span style='mso-spacerun:yes'><3E><> </span><span
style='mso-tab-count:1'><3E><> </span>Header file for <span class=SpellE>adapter.cpp</span></pre><pre><span
class=SpellE>Common.cpp</span><span style='mso-spacerun:yes'><3E> </span><span
style='mso-tab-count:1'><3E><> </span>Common object used by all <span class=SpellE>miniports</span></pre><pre><span
class=SpellE>Common.h</span><span style='mso-spacerun:yes'><3E><><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Header file for the common object</pre><pre><span
class=SpellE>Debug.h</span><span style='mso-spacerun:yes'><3E><><A0><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Debug output support</pre><pre><span
class=SpellE>Guids.h</span><span style='mso-spacerun:yes'><3E><><A0><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Private <span class=SpellE>GUIDs</span> used by the driver (like name definitions)</pre><pre><span
class=SpellE>Ichreg.h</span><span style='mso-spacerun:yes'><3E><><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Defines the registers of the INTEL AC97 interface (ICH)</pre><pre><span
class=SpellE>Ichwave.cpp</span> <span style='mso-tab-count:1'><3E><> </span>Implementation of the stream object (DMA programming)</pre><pre><span
class=SpellE>Ichwave.h</span><span style='mso-spacerun:yes'><3E><> </span><span
style='mso-tab-count:1'><3E><> </span>Header file for the stream object</pre><pre><span
class=SpellE>Makefile</span><span style='mso-spacerun:yes'><3E><><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Standard Windows NT <span class=SpellE>makefile</span></pre><pre><span
class=SpellE>Mintopo.cpp</span> <span style='mso-tab-count:1'><3E><> </span>Implementation of the topology miniport</pre><pre><span
class=SpellE>Mintopo.h</span><span style='mso-spacerun:yes'><3E><> </span><span
style='mso-tab-count:1'><3E><> </span>Header file for the topology miniport</pre><pre><span
class=SpellE>Minwave.cpp</span> <span style='mso-tab-count:1'><3E><> </span>Implementation of the wave PCI miniport</pre><pre><span
class=SpellE>Minwave.h</span><span style='mso-spacerun:yes'><3E><> </span><span
style='mso-tab-count:1'><3E><> </span>Header file for the wave PCI miniport</pre><pre><span
class=SpellE>Prophnd.cpp</span> <span style='mso-tab-count:1'><3E><> </span>Implementation of the property handler (part of the topology miniport)</pre><pre>Readme.htm<span style='mso-spacerun:yes'><3E> </span><span
style='mso-tab-count:1'><3E><> </span>Documentation for this sample (this file)</pre><pre><span
class=SpellE>Shared.h</span><span style='mso-spacerun:yes'><3E><><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Header file shared by every C++ source file</pre><pre>Sources<span style='mso-spacerun:yes'><3E><><A0><A0> </span><span
style='mso-tab-count:1'><3E><> </span>Dependency information for compiling</pre><pre><o:p>&nbsp;</o:p></pre>

<p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Courier New"'><a
href="#top"><span style='font-family:Verdana'>Top of page</span></a></span><span
style='font-size:10.0pt;font-family:Verdana;mso-fareast-font-family:"Courier New";
mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>

<pre><o:p>&nbsp;</o:p></pre>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624
 style='width:6.5in;mso-cellspacing:0in;mso-padding-alt:0in 0in 0in 0in'>
 <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:1.5pt'>
  <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'>
  <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  </td>
 </tr>
</table>

<pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre>

<p style='margin:0in;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:7.5pt;font-family:"MS Sans Serif";mso-fareast-font-family:
"Courier New";mso-bidi-font-family:"Courier New"'><3E> Microsoft Corporation 1999</span><span
style='font-size:10.0pt;font-family:Verdana;mso-fareast-font-family:"Courier New";
mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>

</div>

</body>

</html>