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.

251 lines
12 KiB

  1. <html xmlns:o="urn:schemas-microsoft-com:office:office"
  2. xmlns:w="urn:schemas-microsoft-com:office:word"
  3. xmlns="http://www.w3.org/TR/REC-html40">
  4. <head>
  5. <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  6. <meta name=ProgId content=FrontPage.Editor.Document>
  7. <meta name=Generator content="Microsoft FrontPage 5.0">
  8. <meta name=Originator content="Microsoft Word 10">
  9. <title>AC97</title>
  10. <!--[if gte mso 9]><xml>
  11. <w:WordDocument>
  12. <w:SpellingState>Clean</w:SpellingState>
  13. <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  14. </w:WordDocument>
  15. </xml><![endif]-->
  16. <style>
  17. <!--
  18. /* Font Definitions */
  19. @font-face
  20. {font-family:Verdana;
  21. panose-1:2 11 6 4 3 5 4 4 2 4;
  22. mso-font-charset:0;
  23. mso-generic-font-family:swiss;
  24. mso-font-pitch:variable;
  25. mso-font-signature:536871559 0 0 0 415 0;}
  26. @font-face
  27. {font-family:"MS Sans Serif";
  28. panose-1:0 0 0 0 0 0 0 0 0 0;
  29. mso-font-charset:0;
  30. mso-generic-font-family:swiss;
  31. mso-font-format:other;
  32. mso-font-pitch:variable;
  33. mso-font-signature:3 0 0 0 1 0;}
  34. /* Style Definitions */
  35. p.MsoNormal, li.MsoNormal, div.MsoNormal
  36. {mso-style-parent:"";
  37. margin-bottom:.0001pt;
  38. mso-pagination:widow-orphan;
  39. font-size:12.0pt;
  40. font-family:"Times New Roman";
  41. mso-fareast-font-family:"Times New Roman"; margin-left:0in; margin-right:0in; margin-top:0in}
  42. a:link, span.MsoHyperlink
  43. {color:blue;
  44. text-decoration:underline;
  45. text-underline:single;}
  46. a:visited, span.MsoHyperlinkFollowed
  47. {color:blue;
  48. text-decoration:underline;
  49. text-underline:single;}
  50. p
  51. {mso-margin-top-alt:auto;
  52. margin-right:0in;
  53. mso-margin-bottom-alt:auto;
  54. margin-left:0in;
  55. mso-pagination:widow-orphan;
  56. font-size:12.0pt;
  57. font-family:"Times New Roman";
  58. mso-fareast-font-family:"Times New Roman";}
  59. pre
  60. {margin:0in;
  61. margin-bottom:.0001pt;
  62. mso-pagination:widow-orphan;
  63. 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;
  64. font-size:10.0pt;
  65. font-family:"Courier New";
  66. mso-fareast-font-family:"Courier New";}
  67. span.SpellE
  68. {mso-style-name:"";
  69. mso-spl-e:yes}
  70. @page Section1
  71. {size:8.5in 11.0in;
  72. margin:1.0in 1.25in 1.0in 1.25in;
  73. mso-header-margin:.5in;
  74. mso-footer-margin:.5in;
  75. mso-paper-source:0;}
  76. div.Section1
  77. {page:Section1;}
  78. -->
  79. </style>
  80. <!--[if gte mso 10]>
  81. <style>
  82. /* Style Definitions */
  83. table.MsoNormalTable
  84. {mso-style-name:"Table Normal";
  85. mso-tstyle-rowband-size:0;
  86. mso-tstyle-colband-size:0;
  87. mso-style-noshow:yes;
  88. mso-style-parent:"";
  89. mso-padding-alt:0in 5.4pt 0in 5.4pt;
  90. mso-para-margin:0in;
  91. mso-para-margin-bottom:.0001pt;
  92. mso-pagination:widow-orphan;
  93. font-size:10.0pt;
  94. font-family:"Times New Roman"}
  95. </style>
  96. <![endif]-->
  97. </head>
  98. <body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
  99. <div class=Section1>
  100. <h2><span style='font-family:Verdana'>AC97 WDM Audio Driver Sample<o:p></o:p></span></h2>
  101. <p><span style='font-size:10.0pt;font-family:Arial;color:red'>[This is
  102. preliminary documentation and subject to change.]</span><span style='font-size:
  103. 10.0pt;font-family:Verdana'><o:p></o:p></span></p>
  104. <h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>
  105. <p><span style='font-size:10.0pt;font-family:Verdana'>This sample driver
  106. demonstrates the basics of writing a WDM audio driver. The sample driver should
  107. work with any AC97 codec connected to an Intel� motherboard with integrated
  108. AC97 controller, like the Intel 810 Chipset. The sample driver supports multi
  109. channel audio and builds a mixer topology depending on the AC97 codec in the
  110. system.<o:p></o:p></span></p>
  111. <p><span style='font-size:10.0pt;font-family:Verdana'>Its functionality may be
  112. expanded for non-AC97 design features or to convert the driver to use a
  113. different DMA engine. For more information, please see the &quot;Driver
  114. Issues&quot; section below. <o:p></o:p></span></p>
  115. <h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>
  116. <p><span style='font-size:10.0pt;font-family:Verdana'>To build this sample,
  117. enter any Windows .NET or Windows XP build environment and run <b>build</b><b
  118. style='mso-bidi-font-weight:normal'> �<span class=SpellE>cZ</span></b> from the
  119. AC97 directory (parent directory).</span></p>
  120. <p><span style='font-size:10.0pt;font-family:Verdana'>The INF file named
  121. �AC97smpl.inf� included in the AC97 subdirectory (parent directory) can be used
  122. to install the sample driver after it has been built. Simply copy the INF and
  123. the driver binary to a floppy disk and then update the driver for the device
  124. with the one from the floppy. Note however, that the INF file tries to install
  125. the <span class=SpellE>proppage</span> sample and may want additional binaries.
  126. Please refer to the �<span class=SpellE>readme</span>� in the parent directory
  127. for more information.<o:p></o:p></span></p>
  128. <p><span style='font-size:10.0pt;font-family:Verdana'>Once the driver has been
  129. installed with the INF, the driver may be updated by copying the binary into
  130. %SystemRoot%\System32\Drivers on the target machine and rebooting to test the
  131. new driver, provided that there are no INF changes.<o:p></o:p></span></p>
  132. <h3><span style='font-family:Verdana'>DRIVER ISSUES<o:p></o:p></span></h3>
  133. <p><span style='font-size:10.0pt;font-family:Verdana'>1. At the time of
  134. writing, there is no AC97 implementation available for Alpha or IA64
  135. machines�therefore, the DDK sample source does not install on Alpha or IA64 machines.
  136. <o:p></o:p></span></p>
  137. <p><span style='font-size:10.0pt;font-family:Verdana'>2. This driver supports
  138. the old Intel 810/820/840 implementation as well as the new Intel 815/820
  139. implementation (82801BA/BAM). This new chipset supports multi channel AC97 <span
  140. class=SpellE>codecs</span>, but the sample driver will only run satisfactorily
  141. with 100% AC97 compatible <span class=SpellE>codecs</span>. The double data
  142. rate playback (96KHz, for example) feature is unsupported by those chipsets and
  143. therefore also in the driver. <o:p></o:p></span></p>
  144. <p><span style='font-size:10.0pt;font-family:Verdana'>3. The AC97 low-priority
  145. Microphone recording capability is disabled. You can record using Microphone as
  146. you would record from any other source (for example, a CD) using the normal
  147. recording selector, but the second recording line that is optionally defined in
  148. the AC97 specification is disabled. <o:p></o:p></span></p>
  149. <p><span style='font-size:10.0pt;font-family:Verdana'>4. The AC97 inputs
  150. reported to the operating system may be disabled through the INF. The INF has a
  151. section where you can disable specific input lines of the codec that are not
  152. attached to any adapters. <o:p></o:p></span></p>
  153. <p><span style='font-size:10.0pt;font-family:Verdana'>5. This driver works with
  154. Microsoft� Windows� 2000 (or later) and Microsoft Windows 98 Second Edition (or
  155. later) only. It will neither run nor install on the original release of
  156. Microsoft Windows 98. <o:p></o:p></span></p>
  157. <p><span style='font-size:10.0pt;font-family:Verdana'>6. Due to HW constrains
  158. in the Intel 440MX chipset, this driver cannot run reliably on this chipset.
  159. Therefore, please do not add PnP IDs that contain PCI\VEN_8086&amp;DEV_7195.<o:p></o:p></span></p>
  160. <h3><span lang=FR style='font-family:Verdana;mso-ansi-language:FR'>CODE TOUR<o:p></o:p></span></h3>
  161. <h4><span lang=FR style='font-family:Verdana;mso-ansi-language:FR'>File
  162. Manifest<o:p></o:p></span></h4>
  163. <pre><u><span lang=FR style='mso-ansi-language:FR'>File<span style='mso-tab-count:
  164. 2'>���������� </span>Description<o:p></o:p></span></u></pre><pre><span lang=FR
  165. style='mso-ansi-language:FR'><o:p>&nbsp;</o:p></span></pre><pre>Ac97reg.h<span style='mso-spacerun:yes'>�� </span><span
  166. style='mso-tab-count:1'>�� </span>Definition of the AC97 registers</pre><pre>Ac97smpl.inf<span
  167. style='mso-tab-count:1'>�� </span>Setup information</pre><pre>Ac97smpl.rc <span
  168. style='mso-tab-count:1'>�� </span>Resource file containing version information</pre><pre><span
  169. class=SpellE>Adapter.cpp</span> <span style='mso-tab-count:1'>�� </span>Connects driver with the system</pre><pre><span
  170. class=SpellE>Adapter.h</span><span style='mso-spacerun:yes'>�� </span><span
  171. style='mso-tab-count:1'>�� </span>Header file for <span class=SpellE>adapter.cpp</span></pre><pre><span
  172. class=SpellE>Common.cpp</span><span style='mso-spacerun:yes'></span><span
  173. style='mso-tab-count:1'>�� </span>Common object used by all <span class=SpellE>miniports</span></pre><pre><span
  174. class=SpellE>Common.h</span><span style='mso-spacerun:yes'>��� </span><span
  175. style='mso-tab-count:1'>�� </span>Header file for the common object</pre><pre><span
  176. class=SpellE>Debug.h</span><span style='mso-spacerun:yes'>���� </span><span
  177. style='mso-tab-count:1'>�� </span>Debug output support</pre><pre><span
  178. class=SpellE>Guids.h</span><span style='mso-spacerun:yes'>���� </span><span
  179. style='mso-tab-count:1'>�� </span>Private <span class=SpellE>GUIDs</span> used by the driver (like name definitions)</pre><pre><span
  180. class=SpellE>Ichreg.h</span><span style='mso-spacerun:yes'>��� </span><span
  181. style='mso-tab-count:1'>�� </span>Defines the registers of the INTEL AC97 interface (ICH)</pre><pre><span
  182. class=SpellE>Ichwave.cpp</span> <span style='mso-tab-count:1'>�� </span>Implementation of the stream object (DMA programming)</pre><pre><span
  183. class=SpellE>Ichwave.h</span><span style='mso-spacerun:yes'>�� </span><span
  184. style='mso-tab-count:1'>�� </span>Header file for the stream object</pre><pre><span
  185. class=SpellE>Makefile</span><span style='mso-spacerun:yes'>��� </span><span
  186. style='mso-tab-count:1'>�� </span>Standard Windows NT <span class=SpellE>makefile</span></pre><pre><span
  187. class=SpellE>Mintopo.cpp</span> <span style='mso-tab-count:1'>�� </span>Implementation of the topology miniport</pre><pre><span
  188. class=SpellE>Mintopo.h</span><span style='mso-spacerun:yes'>�� </span><span
  189. style='mso-tab-count:1'>�� </span>Header file for the topology miniport</pre><pre><span
  190. class=SpellE>Minwave.cpp</span> <span style='mso-tab-count:1'>�� </span>Implementation of the wave PCI miniport</pre><pre><span
  191. class=SpellE>Minwave.h</span><span style='mso-spacerun:yes'>�� </span><span
  192. style='mso-tab-count:1'>�� </span>Header file for the wave PCI miniport</pre><pre><span
  193. 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
  194. style='mso-tab-count:1'>�� </span>Documentation for this sample (this file)</pre><pre><span
  195. class=SpellE>Shared.h</span><span style='mso-spacerun:yes'>��� </span><span
  196. style='mso-tab-count:1'>�� </span>Header file shared by every C++ source file</pre><pre>Sources<span style='mso-spacerun:yes'>���� </span><span
  197. style='mso-tab-count:1'>�� </span>Dependency information for compiling</pre><pre><o:p>&nbsp;</o:p></pre>
  198. <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center;
  199. 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
  200. style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Courier New"'><a
  201. href="#top"><span style='font-family:Verdana'>Top of page</span></a></span><span
  202. style='font-size:10.0pt;font-family:Verdana;mso-fareast-font-family:"Courier New";
  203. mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>
  204. <pre><o:p>&nbsp;</o:p></pre>
  205. <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624
  206. style='width:6.5in;mso-cellspacing:0in;mso-padding-alt:0in 0in 0in 0in'>
  207. <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:1.5pt'>
  208. <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'>
  209. <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  210. </td>
  211. </tr>
  212. </table>
  213. <pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre>
  214. <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
  215. style='font-size:7.5pt;font-family:"MS Sans Serif";mso-fareast-font-family:
  216. "Courier New";mso-bidi-font-family:"Courier New"'>� Microsoft Corporation 1999</span><span
  217. style='font-size:10.0pt;font-family:Verdana;mso-fareast-font-family:"Courier New";
  218. mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>
  219. </div>
  220. </body>
  221. </html>