Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

12 KiB

<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® 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'> –<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
‘AC97smpl.inf’ 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 ‘<span class=SpellE>readme</span>’ 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—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® Windows® 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'>           </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'>   </span><span
style='mso-tab-count:1'>   </span>Definition of the AC97 registers</pre><pre>Ac97smpl.inf<span
style='mso-tab-count:1'>   </span>Setup information</pre><pre>Ac97smpl.rc <span
style='mso-tab-count:1'>   </span>Resource file containing version information</pre><pre><span
class=SpellE>Adapter.cpp</span> <span style='mso-tab-count:1'>   </span>Connects driver with the system</pre><pre><span
class=SpellE>Adapter.h</span><span style='mso-spacerun:yes'>   </span><span
style='mso-tab-count:1'>   </span>Header file for <span class=SpellE>adapter.cpp</span></pre><pre><span
class=SpellE>Common.cpp</span><span style='mso-spacerun:yes'>  </span><span
style='mso-tab-count:1'>   </span>Common object used by all <span class=SpellE>miniports</span></pre><pre><span
class=SpellE>Common.h</span><span style='mso-spacerun:yes'>    </span><span
style='mso-tab-count:1'>   </span>Header file for the common object</pre><pre><span
class=SpellE>Debug.h</span><span style='mso-spacerun:yes'>     </span><span
style='mso-tab-count:1'>   </span>Debug output support</pre><pre><span
class=SpellE>Guids.h</span><span style='mso-spacerun:yes'>     </span><span
style='mso-tab-count:1'>   </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'>    </span><span
style='mso-tab-count:1'>   </span>Defines the registers of the INTEL AC97 interface (ICH)</pre><pre><span
class=SpellE>Ichwave.cpp</span> <span style='mso-tab-count:1'>   </span>Implementation of the stream object (DMA programming)</pre><pre><span
class=SpellE>Ichwave.h</span><span style='mso-spacerun:yes'>   </span><span
style='mso-tab-count:1'>   </span>Header file for the stream object</pre><pre><span
class=SpellE>Makefile</span><span style='mso-spacerun:yes'>    </span><span
style='mso-tab-count:1'>   </span>Standard Windows NT <span class=SpellE>makefile</span></pre><pre><span
class=SpellE>Mintopo.cpp</span> <span style='mso-tab-count:1'>   </span>Implementation of the topology miniport</pre><pre><span
class=SpellE>Mintopo.h</span><span style='mso-spacerun:yes'>   </span><span
style='mso-tab-count:1'>   </span>Header file for the topology miniport</pre><pre><span
class=SpellE>Minwave.cpp</span> <span style='mso-tab-count:1'>   </span>Implementation of the wave PCI miniport</pre><pre><span
class=SpellE>Minwave.h</span><span style='mso-spacerun:yes'>   </span><span
style='mso-tab-count:1'>   </span>Header file for the wave PCI miniport</pre><pre><span
class=SpellE>Prophnd.cpp</span> <span style='mso-tab-count:1'>   </span>Implementation of the property handler (part of the topology miniport)</pre><pre>Readme.htm<span style='mso-spacerun:yes'>  </span><span
style='mso-tab-count:1'>   </span>Documentation for this sample (this file)</pre><pre><span
class=SpellE>Shared.h</span><span style='mso-spacerun:yes'>    </span><span
style='mso-tab-count:1'>   </span>Header file shared by every C++ source file</pre><pre>Sources<span style='mso-spacerun:yes'>     </span><span
style='mso-tab-count:1'>   </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"'>© 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>