windows-nt/Source/XPSP1/NT/drivers/ddk/wdmaudio/msvad
2020-09-26 16:20:57 +08:00
..
ac3 Add source files 2020-09-26 16:20:57 +08:00
drmmult Add source files 2020-09-26 16:20:57 +08:00
drmsimp Add source files 2020-09-26 16:20:57 +08:00
ds2dhw Add source files 2020-09-26 16:20:57 +08:00
multstr Add source files 2020-09-26 16:20:57 +08:00
pcmex Add source files 2020-09-26 16:20:57 +08:00
simple Add source files 2020-09-26 16:20:57 +08:00
adapter.cpp Add source files 2020-09-26 16:20:57 +08:00
basedma.cpp Add source files 2020-09-26 16:20:57 +08:00
basetopo.cpp Add source files 2020-09-26 16:20:57 +08:00
basetopo.h Add source files 2020-09-26 16:20:57 +08:00
basewave.cpp Add source files 2020-09-26 16:20:57 +08:00
basewave.h Add source files 2020-09-26 16:20:57 +08:00
common.cpp Add source files 2020-09-26 16:20:57 +08:00
common.h Add source files 2020-09-26 16:20:57 +08:00
hw.cpp Add source files 2020-09-26 16:20:57 +08:00
hw.h Add source files 2020-09-26 16:20:57 +08:00
kshelper.cpp Add source files 2020-09-26 16:20:57 +08:00
kshelper.h Add source files 2020-09-26 16:20:57 +08:00
msvad.h Add source files 2020-09-26 16:20:57 +08:00
msvad.inf Add source files 2020-09-26 16:20:57 +08:00
msvad.rc Add source files 2020-09-26 16:20:57 +08:00
readme.htm Add source files 2020-09-26 16:20:57 +08:00
savedata.cpp Add source files 2020-09-26 16:20:57 +08:00
savedata.h Add source files 2020-09-26 16:20:57 +08:00
sources.inc Add source files 2020-09-26 16:20:57 +08:00

<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=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="readme_files/filelist.xml">
<title>SoundBlaster16</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Alper SELCUK</o:Author>
  <o:LastAuthor>Frank Berreth</o:LastAuthor>
  <o:Revision>10</o:Revision>
  <o:TotalTime>164</o:TotalTime>
  <o:Created>2000-10-03T17:03:00Z</o:Created>
  <o:LastSaved>2002-07-02T22:08:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>453</o:Words>
  <o:Characters>2588</o:Characters>
  <o:Company>Microsoft Internal</o:Company>
  <o:Lines>21</o:Lines>
  <o:Paragraphs>6</o:Paragraphs>
  <o:CharactersWithSpaces>3035</o:CharactersWithSpaces>
  <o:Version>10.3501</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <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-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";}
h2
	{mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	mso-outline-level:2;
	font-size:18.0pt;
	font-family:"Times New Roman";
	font-weight:bold;}
h3
	{mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	mso-outline-level:3;
	font-size:13.5pt;
	font-family:"Times New Roman";
	font-weight:bold;}
h4
	{mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	mso-outline-level:4;
	font-size:12.0pt;
	font-family:"Times New Roman";
	font-weight:bold;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:0in;
	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;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	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";}
p.Code, li.Code, div.Code
	{mso-style-name:Code;
	mso-style-update:auto;
	mso-style-parent:"Body Text";
	margin-top:3.0pt;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:.5in;
	line-height:13.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";}
@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=purple style='tab-interval:.5in'>

<div class=Section1>

<h2><span style='font-family:Verdana'>Microsoft Virtual Audio Driver (MSVAD)<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. This sample uses a
step-by-step approach to implement various WDM audio driver features. Each
feature is implemented as a separate driver and uses the common classes and
services implemented in root directory. The driver developers can use the same
framework to implement new features without hardware dependencies.<o:p></o:p></span></p>

<p><i><span style='font-size:10.0pt;font-family:Verdana'>CadapterCommon </span></i><span
style='font-size:10.0pt;font-family:Verdana'>gives the miniports access to
virtual mixer HW. Also implements the AdapterPowerManagement.<o:p></o:p></span></p>

<p><i><span style='font-size:10.0pt;font-family:Verdana'>CMiniportMSVADTopology</span></i><span
style='font-size:10.0pt;font-family:Verdana'> is the base class for all sample
topologies. It has very basic common functions. Also common topology property
handlers are in this class. The common topology is shown in the below graph.<o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'><o:p>&nbsp;</o:p></span></p>

<p><i><span style='font-size:10.0pt;font-family:Verdana'>CMiniportWaveCyclicMSVAD</span></i><span
style='font-size:10.0pt;font-family:Verdana'> is the base class for all sample
wave miniports. It has very basic common functions such as property handlers.<o:p></o:p></span></p>

<p><i><span style='font-size:10.0pt;font-family:Verdana'>CMiniportWaveCyclicStreamMSVAD</span></i><span
style='font-size:10.0pt;font-family:Verdana'> is the base class for all sample
wave streams. It implements a timer-based interrupt mechanism to simulate real
DMA interrupts. Its <i>IDmaAdapter</i> implementation copies data to memory
instead of DMA.<o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>The following list shows
the features implemented in this sample.<o:p></o:p></span></p>

<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
 style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
 mso-padding-alt:0in 5.75pt 0in 5.75pt'>
 <tr style='mso-yfti-irow:0'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>simple<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border:solid windowtext 1.0pt;
  border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
  solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Basic driver with wavecyc
  and topology ports<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:1'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>multistr<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Implements multiple
  playback streams<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:2'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>drmsimp<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Implements DRM for <b>simple</b>.<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:3'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>drmmult<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Implements DRM for <b>drmsimp</b><o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:4'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>pcmex<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Implements
  WAVEFORMATEXTENSIBLE pins<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:5'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>ac3<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Implements AC3 pins for
  playback<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:6;mso-yfti-lastrow:yes'>
  <td width=107 valign=top style='width:80.6pt;border:solid windowtext 1.0pt;
  border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
  padding:0in 5.75pt 0in 5.75pt'>
  <p><b><span style='font-size:10.0pt;font-family:Verdana'>ds2dhw<o:p></o:p></span></b></p>
  </td>
  <td width=348 valign=top style='width:261.0pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  mso-border-alt:solid windowtext .5pt;padding:0in 5.75pt 0in 5.75pt'>
  <p><span style='font-size:10.0pt;font-family:Verdana'>Implements DirectSound
  2D HW support.<o:p></o:p></span></p>
  </td>
 </tr>
</table>

<p><span style='font-size:10.0pt;font-family:Verdana'><o:p>&nbsp;</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,
start DDK build environment and run <b>build</b> from this directory.<o:p></o:p></span></p>

<p><span style='font-size:10.0pt;font-family:Verdana'>This sample can be
installed only manually. To install the sample, run Control Panel-&gt;Add New
Hardware Wizard. Select Media Device Category (Sound, video and game
controllers). Point the wizard to msvad.inf. Setup will give you a list of
MSVAD derivatives with different features. Select one of the drivers and
installation should proceed smoothly.<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'><o:p>&nbsp;</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'><3E><><A0><A0><A0><A0><A0><A0><A0><A0> </span>Description<o:p></o:p></u></pre><pre><o:p>&nbsp;</o:p></pre><pre>Adapter.cpp<span
style='mso-tab-count:1'><3E><><A0> </span>Connects the driver with the system</pre><pre>Basedma.cpp<span
style='mso-tab-count:1'><3E><><A0> </span>IDmaChannel implementation</pre><pre>Basetopo.cpp<span
style='mso-tab-count:1'><3E><> </span>Base topology class implementation</pre><pre>Basetopo.h<span
style='mso-tab-count:1'><3E><><A0><A0> </span>Base topology class definition</pre><pre>Basewave.cpp<span
style='mso-tab-count:1'><3E><> </span>Base wavecyclic class implementation</pre><pre>Basewave.h<span
style='mso-tab-count:1'><3E><><A0><A0> </span>Base wavecyclic class definition</pre><pre>Common.cpp<span
style='mso-tab-count:1'><3E><><A0><A0> </span>Common object used by all miniports</pre><pre>Common.h <span
style='mso-tab-count:1'><3E><><A0><A0><A0> </span>Header file for the common object</pre><pre>Hw.cpp<span
style='mso-tab-count:2'><3E><><A0><A0><A0><A0><A0><A0> </span>HW abstraction of MSVAD</pre><pre>Hw.h<span
style='mso-tab-count:2'><3E><><A0><A0><A0><A0><A0><A0><A0><A0> </span>HW class definition</pre><pre>Kshelper.cpp<span
style='mso-tab-count:1'><3E><> </span>Kernel Streaming utility function implementations</pre><pre>Kshelper.h<span
style='mso-tab-count:1'><3E><><A0><A0> </span>Kernel Streaming utility function definitions</pre><pre>Msvad.h<span
style='mso-tab-count:2'><3E><><A0><A0><A0><A0><A0> </span>Common definitions</pre><pre>Msvad.inf<span
style='mso-tab-count:1'><3E><><A0><A0><A0> </span>Installation inf for this sample</pre><pre>Msvad.rc<span
style='mso-tab-count:1'><3E><><A0><A0><A0><A0> </span>Common resource file</pre><pre>Readme.htm<span
style='mso-tab-count:1'><3E><><A0><A0> </span>The documentation for this driver (this file)</pre><pre>Savedata.cpp<span
style='mso-tab-count:1'><3E><> </span>Writes PCM data to disk.</pre><pre>Savedata.h<span
style='mso-tab-count:1'><3E><><A0><A0> </span>Definition of CsaveData class.</pre><pre>Sources.inc<span
style='mso-tab-count:1'><3E><><A0> </span>Common sources file included by all sample drivers.</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'><a
href="../../../../../../../ntdriverswdmaudiobackplnadapterssb16%22%20l"><span
style='font-size:10.0pt;font-family:Verdana'>Top of page</span></a><span
style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>

<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><span style='font-size:2.0pt;mso-bidi-font-size:12.0pt'><o:p>&nbsp;</o:p></span></p>
  </td>
 </tr>
</table>

<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"'><3E> Microsoft Corporation
1999-2000</span><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>

<p class=MsoNormal 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'><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>