windows-nt/Source/XPSP1/NT/drivers/ddk/wdmaudio/mpu401/mpu401.htm
2020-09-26 16:20:57 +08:00

209 lines
8.5 KiB
HTML

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="mpu401_files/filelist.xml">
<title>MPU-401 </title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![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-alt:"Times New Roman";
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:auto;
mso-font-signature:0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
p
{font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
pre
{margin-top:0in;
margin-bottom:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
mso-fareast-font-family:"Times New Roman";}
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'>MPU-401 <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 WDM driver
implements standard functionality for an MPU-401 device. The driver is
extremely small because it leverages code built into <span class=SpellE>PortCls</span>.
It simply specifies and connects the appropriate port and miniport, which
already exist in <span class=SpellE>PortCls</span>. The Msmpu401 driver is used
by audio devices when the MPU-401 hardware is on a separate <span class=SpellE>devnode</span>
from other audio functionality. If the MPU-401 shares a <span class=SpellE>devnode</span>
with other <span class=SpellE>subdevices</span> (such as PCM wave, in the Sb16
device), the built-in <span class=SpellE>DMusUART</span> miniport can still be
used, but an adapter that handles multiple <span class=SpellE>subdevices</span>
must be written. The Sb16 sample illustrates how this can be done. <o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>If the built-in miniport
is insufficient, a custom miniport can be built to handle any additional
functionality. There are a number of miniport samples in the DDK: the <span
class=SpellE>Dmusuart</span>, <span class=SpellE>Ddksynth</span>, <span
class=SpellE>Fmsynth</span> and <span class=SpellE>Uart</span> samples show how
to build <span class=SpellE>miniports</span> that interface to the <span
class=SpellE>DMus</span> and </span><st1:place><span style='font-size:10.0pt;
font-family:Verdana'>MIDI</span></st1:place><span style='font-size:10.0pt;
font-family:Verdana'> ports; Sb16 and Ac97 include custom wave <span
class=SpellE>miniports</span>. Additionally, the <span class=SpellE>Ddksynth</span>,
Sb16 and Ac97 samples contain the necessary code to connect the custom miniport
into the driver. If you choose to pursue this, try to follow the sample as
closely as possible. You will prevent unnecessary complexity by taking
advantage of what <span class=SpellE>PortCls</span> will do for you. <o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>This sample is compliant
with x86, Alpha, iA64, and AXP64 platforms. This driver builds properly with
Microsoft&reg; Visual C&reg; 6.0. Since the driver is a <span class=SpellE>PortCls</span>
client, it is compliant with Plug and Play and Power Management. There are no
known issues with this driver.<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 the free or checked build environment and run <b>build</b> from this
directory. Once built, this sample produces msmpu401.sys. In addition to the
files in the directory, the following files are needed to build this sample:<o:p></o:p></span></p>
<p><span class=SpellE><span style='font-size:10.0pt;font-family:Verdana'>Portcls.lib</span></span><span
style='font-size:10.0pt;font-family:Verdana'><br>
<span class=SpellE>Libcntpr.lib</span><br>
<span class=SpellE>Ksguid.lib</span><br>
<span class=SpellE>Stdunk.lib</span><br>
<span class=SpellE>Dmusicks.h</span><br>
<span class=SpellE>Dmusprop.h</span><br>
<span class=SpellE>Dmusbuff.h</span><br>
<span class=SpellE>Ks.h</span><br>
<span class=SpellE>Ksdebug.h</span><br>
<span class=SpellE>Ksmedia.h</span><br>
<span class=SpellE>Portcls.h</span><br>
<span class=SpellE>Unknown.h</span><br>
<span class=SpellE>Wdm.h</span><o:p></o:p></span></p>
<h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3>
<h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4>
<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
class=SpellE>Adapter.cpp</span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>Source file </pre><pre><span
class=SpellE>Makefile</span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Standard Windows NT <span
class=SpellE>makefile</span></pre><pre>Mpu401.rc<span style='mso-tab-count:
1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Resource file </pre><pre>Sources<span
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>
<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
style='font-size:10.0pt;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-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'>
<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='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-bidi-font-family:"Courier New"'>&copy;
Microsoft Corporation 1999</span><span style='font-size:10.0pt;font-family:
Verdana;mso-bidi-font-family:"Courier New"'> <o:p></o:p></span></p>
</div>
</body>
</html>