545 lines
23 KiB
HTML
545 lines
23 KiB
HTML
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||
xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
|
||
xmlns:oa="urn:schemas-microsoft-com:office:activation"
|
||
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=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="notify_files/filelist.xml">
|
||
<title>Muxim Notify Object Sample</title>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="PlaceName"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="PlaceType"/>
|
||
<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:SimSun;
|
||
panose-1:2 1 6 0 3 1 1 1 1 1;
|
||
mso-font-alt:ËÎÌå;
|
||
mso-font-charset:134;
|
||
mso-generic-font-family:auto;
|
||
mso-font-format:other;
|
||
mso-font-pitch:variable;
|
||
mso-font-signature:1 135135232 16 0 262144 0;}
|
||
@font-face
|
||
{font-family:"\@SimSun";
|
||
mso-font-charset:134;
|
||
mso-generic-font-family:auto;
|
||
mso-font-pitch:variable;
|
||
mso-font-signature:3 135135232 16 0 262145 0;}
|
||
@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:0in;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:12.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
h1
|
||
{mso-style-next:Normal;
|
||
margin:0in;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:1;
|
||
font-size:10.0pt;
|
||
font-family:Verdana;
|
||
mso-fareast-font-family:SimSun;
|
||
mso-font-kerning:0pt;
|
||
font-weight:bold;}
|
||
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";
|
||
mso-fareast-font-family:SimSun;
|
||
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";
|
||
mso-fareast-font-family:SimSun;
|
||
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";
|
||
mso-fareast-font-family:SimSun;
|
||
font-weight:bold;}
|
||
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;}
|
||
span.GramE
|
||
{mso-style-name:"";
|
||
mso-gram-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;}
|
||
/* List Definitions */
|
||
@list l0
|
||
{mso-list-id:354117224;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-730287492 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l0:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;
|
||
font-family:Symbol;}
|
||
@list l0:level2
|
||
{mso-level-tab-stop:1.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level3
|
||
{mso-level-tab-stop:1.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level4
|
||
{mso-level-tab-stop:2.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level5
|
||
{mso-level-tab-stop:2.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level6
|
||
{mso-level-tab-stop:3.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level7
|
||
{mso-level-tab-stop:3.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level8
|
||
{mso-level-tab-stop:4.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l0:level9
|
||
{mso-level-tab-stop:4.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1
|
||
{mso-list-id:379671731;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-1929328134 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||
@list l1:level1
|
||
{mso-level-text:"%1\)";
|
||
mso-level-tab-stop:.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level2
|
||
{mso-level-tab-stop:1.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level3
|
||
{mso-level-tab-stop:1.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level4
|
||
{mso-level-tab-stop:2.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level5
|
||
{mso-level-tab-stop:2.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level6
|
||
{mso-level-tab-stop:3.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level7
|
||
{mso-level-tab-stop:3.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level8
|
||
{mso-level-tab-stop:4.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l1:level9
|
||
{mso-level-tab-stop:4.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2
|
||
{mso-list-id:1626816921;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-553597382 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||
@list l2:level1
|
||
{mso-level-text:"%1\)";
|
||
mso-level-tab-stop:.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level2
|
||
{mso-level-tab-stop:1.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level3
|
||
{mso-level-tab-stop:1.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level4
|
||
{mso-level-tab-stop:2.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level5
|
||
{mso-level-tab-stop:2.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level6
|
||
{mso-level-tab-stop:3.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level7
|
||
{mso-level-tab-stop:3.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level8
|
||
{mso-level-tab-stop:4.0in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
@list l2:level9
|
||
{mso-level-tab-stop:4.5in;
|
||
mso-level-number-position:left;
|
||
text-indent:-.25in;}
|
||
ol
|
||
{margin-bottom:0in;}
|
||
ul
|
||
{margin-bottom:0in;}
|
||
-->
|
||
</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'>MUX.DLL – Sample Notify Object <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>
|
||
|
||
<h3><span style='font-size:12.0pt;font-family:Verdana'>MUX Notify Object<o:p></o:p></span></h3>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>This sample demonstrates
|
||
how to write a notify object for installing and configuring an NDIS MUX
|
||
intermediate miniport (IM) driver that implements a N:1 relationship between
|
||
upper and lower bindings i.e. it creates multiple virtual network devices on
|
||
top of a single lower adapter. Protocols bind to these virtual adapters as if
|
||
they are real adapters. Examples of </span><st1:place><st1:PlaceName><span
|
||
style='font-size:10.0pt;font-family:Verdana'>Intermediate</span></st1:PlaceName><span
|
||
style='font-size:10.0pt;font-family:Verdana'> </span><st1:PlaceType><span
|
||
style='font-size:10.0pt;font-family:Verdana'>Miniport</span></st1:PlaceType></st1:place><span
|
||
style='font-size:10.0pt;font-family:Verdana'> drivers that can use this type of
|
||
notify objects are Virtual LAN (VLAN) drivers.<o:p></o:p></span></p>
|
||
|
||
<p><b style='mso-bidi-font-weight:normal'><span style='font-family:Verdana'>Operation</span></b><span
|
||
style='font-family:Verdana'><o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>During installation, the
|
||
notify object performs the following operations.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>It
|
||
creates one virtual adapter for each physical adapter the MUX protocol edge
|
||
binds to.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>It
|
||
disables the bindings of other protocols such as TCP/IP to physical adapters if
|
||
it has been compiled with DISABLE_PROTOCOLS_TO_PHYSICAL defined in the Sources
|
||
file. This is the most commonly desired behavior for N:1 MUX drivers.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>It
|
||
disables the bindings of the protocol edge of the MUX IM driver with all its
|
||
virtual adapters.<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>The notify object
|
||
provides a custom property page for the MUX IM driver. The custom property page
|
||
allows the user to add one or more virtual adapters on top of a physical
|
||
adapter or delete an existing virtual adapter.<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>When the MUX IM driver is
|
||
uninstalled, binding is disabled, or the user deletes all the virtual adapters
|
||
on top of a physical adapter, the notify object restores the bindings of other
|
||
protocols to the physical adapter if it has been compiled with the preprocessor
|
||
flag DISABLE_PROTOCOLS_TO_PHYSICAL defined in the Sources file.<o:p></o:p></span></p>
|
||
|
||
<p><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;
|
||
font-family:Verdana'>Windows 2000 Specific<o:p></o:p></span></b></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>During the installation,
|
||
the notify object copies the INF file for the virtual adapter from the
|
||
installation media to the system INF directory by using the <span class=SpellE>SetupCopyOEMInf</span>
|
||
function. This is done because Windows 2000 does not support the <span
|
||
class=SpellE>CopyINF</span> directive to copy INF files from another INF file.<o:p></o:p></span></p>
|
||
|
||
<h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>
|
||
|
||
<p style='tab-stops:657.0pt'><span style='font-size:10.0pt;font-family:Verdana'>To
|
||
build the sample, type <b>build -ceZ</b>. This command produces the binary
|
||
mux.dll, which is the sample notify object.<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>The sample compiles
|
||
properly for 32-bit and 64-bit, and builds properly with Microsoft® Visual C®
|
||
6.0.<o:p></o:p></span></p>
|
||
|
||
<p><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;
|
||
font-family:Verdana'>Preprocessor Flags:<o:p></o:p></span></b></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>DISABLE_PROTOCOLS_TO_PHYSICAL<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>When this flag is defined
|
||
in the Sources file, the notify object disables the bindings of other protocols
|
||
such as TCP/IP to the physical adapters during the installation. When all the
|
||
virtual adapters are removed either through the custom property page or as a
|
||
result of uninstalling the MUX driver, the notify object re-enables those
|
||
bindings.<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>PASSTHRU_NOTIFY<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>This is defined to allow
|
||
the MUX driver to be used in a <span class=SpellE>passthru</span> mode. When
|
||
this flag is defined, the notify object:<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo4;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Creates
|
||
only one virtual miniport for every physical adapter the MUX protocol edge
|
||
binds to.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo4;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Disables
|
||
the property page to prevent adding of additional virtual miniports. <o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo4;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Stores
|
||
the device name of the virtual adapter in REG_SZ registry value under
|
||
HKLM\System\<span class=SpellE>CurrentControlSet\Services\muxp\Parameters\Adapters</span><span
|
||
class=GramE>\{</span><span class=SpellE><i style='mso-bidi-font-style:normal'>PhysicalAdaptersInstanceGuid</i></span><i
|
||
style='mso-bidi-font-style:normal'>}\</i>UpperBindings, because there is one to
|
||
one binding. In the MUX mode (when this flag is not defined), the notify object
|
||
stores the device name in a REG_MULTI_SZ registry value as there could be more
|
||
than one virtual miniports.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.25in'><span style='font-size:10.0pt;font-family:Verdana'>You
|
||
can also use this notify object with the Passthru driver by doing the
|
||
following:<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Change
|
||
the protocol name in file <span class=SpellE>src\network\ndis\passthru\passthru.c</span>
|
||
from PASSTHRU to MUXP.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Change
|
||
the driver name from Passthru to MUX in the sources file.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Rebuild
|
||
the driver to obtain a mux.sys driver binary.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Build
|
||
the MUX notify object with PASSTHRU_NOTIFY defined.<o:p></o:p></span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
|
||
font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
|
||
style='mso-list:Ignore'>5)<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Use
|
||
the MUX <span class=SpellE><span class=GramE>inf</span></span> files, <span
|
||
class=SpellE>muxp.inf</span> and <span class=SpellE>mux_mp.inf</span>, to
|
||
install the driver and <span class=SpellE>dll</span>.<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>The benefit of using techniques
|
||
in the MUX notify object for a 1:1 intermediate driver (e.g. Passthru) is to be
|
||
able to exercise higher level of control over the bindings of MUX with other
|
||
components in the system, which is not possible with the IM filter driver.<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>CUSTOM_EVENTS<o:p></o:p></span></p>
|
||
|
||
<p><span style='font-size:10.0pt;font-family:Verdana'>When this macro is
|
||
defined, the notify object shows how to send custom events to the MUX IM driver
|
||
when a virtual miniport is added or removed.<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'> </span>Description<o:p></o:p></u></pre><pre><span
|
||
class=SpellE>Dllmain.cpp</span><span style='mso-tab-count:1'> </span>File containing implementations of DLL entry point and exports. </pre><pre><span
|
||
class=SpellE>Implinc.cpp</span><span style='mso-tab-count:1'> </span>File including source code for ATL utilities.</pre><pre>mux.htm<span
|
||
style='mso-tab-count:2'> </span>The documentation for this sample.</pre><pre><span
|
||
class=SpellE>Pch.h</span><span style='mso-tab-count:2'> </span>Pre-compiled header file.</pre><pre><span
|
||
class=SpellE>Resource.h</span><span style='mso-tab-count:1'> </span>The resource header.</pre><pre><span
|
||
class=SpellE>notify.cpp</span><span style='mso-tab-count:1'> </span>Notify object implementation.</pre><pre><span
|
||
class=SpellE>virtual.cpp</span><span style='mso-tab-count:1'> </span>Virtual adapter class implementation.</pre><pre><span
|
||
class=SpellE>adapter.cpp</span><span style='mso-tab-count:1'> </span>Physical adapter class implementation.</pre><pre><span
|
||
class=SpellE>common.cpp</span><span style='mso-tab-count:1'> </span>Global functions, variables and macro definitions.</pre><pre><span
|
||
class=SpellE>mux.def</span><span style='mso-tab-count:2'> </span>The sample's linker definition file.</pre><pre><span
|
||
class=SpellE>mux.h</span><span style='mso-tab-count:2'> </span>The header file for <span
|
||
class=SpellE>mux.cpp</span>.</pre><pre><span class=SpellE>virtual.h</span><span
|
||
style='mso-tab-count:1'> </span>Virtual adapter class declaration.</pre><pre><span
|
||
class=SpellE>Adapter.h</span><span style='mso-tab-count:1'> </span>Physical adapter class declaration.</pre><pre><span
|
||
class=SpellE>notify.rc</span><span style='mso-tab-count:1'> </span>The resource file.</pre><pre><span
|
||
class=SpellE>notify.rgs</span><span style='mso-tab-count:1'> </span>Script-based registry.</pre><pre><span
|
||
class=SpellE>notifyn.idl</span><span style='mso-tab-count:1'> </span>The notify object's .<span
|
||
class=SpellE>idl</span> file.</pre><pre><span class=SpellE>setupdi.cpp</span><span
|
||
style='mso-tab-count:1'> </span>Functions to copy the miniport INF file to the system.</pre><pre><o:p> </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'><b
|
||
style='mso-bidi-font-weight:normal'><a href="#_top"><span style='font-size:
|
||
10.0pt;font-family:Verdana;font-weight:normal'>Top of page</span></a></b><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><o:p> </o:p></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"'>© Microsoft Corporation
|
||
2001</span><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|
||
|