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.

208 lines
8.5 KiB

  1. <html xmlns:o="urn:schemas-microsoft-com:office:office"
  2. xmlns:w="urn:schemas-microsoft-com:office:word"
  3. xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
  4. xmlns="http://www.w3.org/TR/REC-html40">
  5. <head>
  6. <meta http-equiv=Content-Type content="text/html; charset=us-ascii">
  7. <meta name=ProgId content=Word.Document>
  8. <meta name=Generator content="Microsoft Word 10">
  9. <meta name=Originator content="Microsoft Word 10">
  10. <link rel=File-List href="mpu401_files/filelist.xml">
  11. <title>MPU-401 </title>
  12. <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
  13. name="place"/>
  14. <!--[if gte mso 9]><xml>
  15. <w:WordDocument>
  16. <w:SpellingState>Clean</w:SpellingState>
  17. <w:GrammarState>Clean</w:GrammarState>
  18. <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  19. </w:WordDocument>
  20. </xml><![endif]--><!--[if !mso]><object
  21. classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
  22. <style>
  23. st1\:*{behavior:url(#ieooui) }
  24. </style>
  25. <![endif]-->
  26. <style>
  27. <!--
  28. /* Font Definitions */
  29. @font-face
  30. {font-family:Verdana;
  31. panose-1:2 11 6 4 3 5 4 4 2 4;
  32. mso-font-charset:0;
  33. mso-generic-font-family:swiss;
  34. mso-font-pitch:variable;
  35. mso-font-signature:536871559 0 0 0 415 0;}
  36. @font-face
  37. {font-family:"MS Sans Serif";
  38. panose-1:0 0 0 0 0 0 0 0 0 0;
  39. mso-font-alt:"Times New Roman";
  40. mso-font-charset:0;
  41. mso-generic-font-family:roman;
  42. mso-font-format:other;
  43. mso-font-pitch:auto;
  44. mso-font-signature:0 0 0 0 0 0;}
  45. /* Style Definitions */
  46. p.MsoNormal, li.MsoNormal, div.MsoNormal
  47. {mso-style-parent:"";
  48. margin:0in;
  49. margin-bottom:.0001pt;
  50. mso-pagination:widow-orphan;
  51. font-size:12.0pt;
  52. font-family:"Times New Roman";
  53. mso-fareast-font-family:"Times New Roman";}
  54. a:link, span.MsoHyperlink
  55. {color:blue;
  56. text-decoration:underline;
  57. text-underline:single;}
  58. p
  59. {font-size:12.0pt;
  60. font-family:"Times New Roman";
  61. mso-fareast-font-family:"Times New Roman";}
  62. pre
  63. {margin-top:0in;
  64. margin-bottom:0in;
  65. margin-bottom:.0001pt;
  66. font-size:10.0pt;
  67. font-family:"Courier New";
  68. mso-fareast-font-family:"Times New Roman";}
  69. span.SpellE
  70. {mso-style-name:"";
  71. mso-spl-e:yes;}
  72. @page Section1
  73. {size:8.5in 11.0in;
  74. margin:1.0in 1.25in 1.0in 1.25in;
  75. mso-header-margin:.5in;
  76. mso-footer-margin:.5in;
  77. mso-paper-source:0;}
  78. div.Section1
  79. {page:Section1;}
  80. -->
  81. </style>
  82. <!--[if gte mso 10]>
  83. <style>
  84. /* Style Definitions */
  85. table.MsoNormalTable
  86. {mso-style-name:"Table Normal";
  87. mso-tstyle-rowband-size:0;
  88. mso-tstyle-colband-size:0;
  89. mso-style-noshow:yes;
  90. mso-style-parent:"";
  91. mso-padding-alt:0in 5.4pt 0in 5.4pt;
  92. mso-para-margin:0in;
  93. mso-para-margin-bottom:.0001pt;
  94. mso-pagination:widow-orphan;
  95. font-size:10.0pt;
  96. font-family:"Times New Roman";}
  97. </style>
  98. <![endif]-->
  99. </head>
  100. <body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
  101. <div class=Section1>
  102. <h2><span style='font-family:Verdana'>MPU-401 <o:p></o:p></span></h2>
  103. <p><span style='font-size:10.0pt;font-family:Arial;color:red'>[This is
  104. preliminary documentation and subject to change.]</span><span style='font-size:
  105. 10.0pt;font-family:Verdana'><o:p></o:p></span></p>
  106. <h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>
  107. <p><span style='font-size:10.0pt;font-family:Verdana'>This WDM driver
  108. implements standard functionality for an MPU-401 device. The driver is
  109. extremely small because it leverages code built into <span class=SpellE>PortCls</span>.
  110. It simply specifies and connects the appropriate port and miniport, which
  111. already exist in <span class=SpellE>PortCls</span>. The Msmpu401 driver is used
  112. by audio devices when the MPU-401 hardware is on a separate <span class=SpellE>devnode</span>
  113. from other audio functionality. If the MPU-401 shares a <span class=SpellE>devnode</span>
  114. with other <span class=SpellE>subdevices</span> (such as PCM wave, in the Sb16
  115. device), the built-in <span class=SpellE>DMusUART</span> miniport can still be
  116. used, but an adapter that handles multiple <span class=SpellE>subdevices</span>
  117. must be written. The Sb16 sample illustrates how this can be done. <o:p></o:p></span></p>
  118. <p><span style='font-size:10.0pt;font-family:Verdana'>If the built-in miniport
  119. is insufficient, a custom miniport can be built to handle any additional
  120. functionality. There are a number of miniport samples in the DDK: the <span
  121. class=SpellE>Dmusuart</span>, <span class=SpellE>Ddksynth</span>, <span
  122. class=SpellE>Fmsynth</span> and <span class=SpellE>Uart</span> samples show how
  123. to build <span class=SpellE>miniports</span> that interface to the <span
  124. class=SpellE>DMus</span> and </span><st1:place><span style='font-size:10.0pt;
  125. font-family:Verdana'>MIDI</span></st1:place><span style='font-size:10.0pt;
  126. font-family:Verdana'> ports; Sb16 and Ac97 include custom wave <span
  127. class=SpellE>miniports</span>. Additionally, the <span class=SpellE>Ddksynth</span>,
  128. Sb16 and Ac97 samples contain the necessary code to connect the custom miniport
  129. into the driver. If you choose to pursue this, try to follow the sample as
  130. closely as possible. You will prevent unnecessary complexity by taking
  131. advantage of what <span class=SpellE>PortCls</span> will do for you. <o:p></o:p></span></p>
  132. <p><span style='font-size:10.0pt;font-family:Verdana'>This sample is compliant
  133. with x86, Alpha, iA64, and AXP64 platforms. This driver builds properly with
  134. Microsoft&reg; Visual C&reg; 6.0. Since the driver is a <span class=SpellE>PortCls</span>
  135. client, it is compliant with Plug and Play and Power Management. There are no
  136. known issues with this driver.<o:p></o:p></span></p>
  137. <h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>
  138. <p><span style='font-size:10.0pt;font-family:Verdana'>To build this sample,
  139. enter the free or checked build environment and run <b>build</b> from this
  140. directory. Once built, this sample produces msmpu401.sys. In addition to the
  141. files in the directory, the following files are needed to build this sample:<o:p></o:p></span></p>
  142. <p><span class=SpellE><span style='font-size:10.0pt;font-family:Verdana'>Portcls.lib</span></span><span
  143. style='font-size:10.0pt;font-family:Verdana'><br>
  144. <span class=SpellE>Libcntpr.lib</span><br>
  145. <span class=SpellE>Ksguid.lib</span><br>
  146. <span class=SpellE>Stdunk.lib</span><br>
  147. <span class=SpellE>Dmusicks.h</span><br>
  148. <span class=SpellE>Dmusprop.h</span><br>
  149. <span class=SpellE>Dmusbuff.h</span><br>
  150. <span class=SpellE>Ks.h</span><br>
  151. <span class=SpellE>Ksdebug.h</span><br>
  152. <span class=SpellE>Ksmedia.h</span><br>
  153. <span class=SpellE>Portcls.h</span><br>
  154. <span class=SpellE>Unknown.h</span><br>
  155. <span class=SpellE>Wdm.h</span><o:p></o:p></span></p>
  156. <h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3>
  157. <h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4>
  158. <pre><u>File<span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Description<o:p></o:p></u></pre><pre><o:p>&nbsp;</o:p></pre><pre><span
  159. class=SpellE>Adapter.cpp</span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>Source file </pre><pre><span
  160. class=SpellE>Makefile</span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Standard Windows NT <span
  161. class=SpellE>makefile</span></pre><pre>Mpu401.rc<span style='mso-tab-count:
  162. 1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Resource file </pre><pre>Sources<span
  163. style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Dependency and include file</pre><pre><o:p>&nbsp;</o:p></pre>
  164. <p align=center style='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
  165. style='font-size:10.0pt;font-family:"Courier New"'><a href="#top"><span
  166. style='font-family:Verdana'>Top of page</span></a></span><span
  167. style='font-size:10.0pt;font-family:Verdana;mso-bidi-font-family:"Courier New"'>
  168. <o:p></o:p></span></p>
  169. <pre><o:p>&nbsp;</o:p></pre>
  170. <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624
  171. style='width:6.5in;mso-cellspacing:0in'>
  172. <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:1.5pt'>
  173. <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'>
  174. <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  175. </td>
  176. </tr>
  177. </table>
  178. <pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre>
  179. <p style='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
  180. style='font-size:7.5pt;font-family:"MS Sans Serif";mso-bidi-font-family:"Courier New"'>&copy;
  181. Microsoft Corporation 1999</span><span style='font-size:10.0pt;font-family:
  182. Verdana;mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>
  183. </div>
  184. </body>
  185. </html>