mirror of https://github.com/tongzx/nt5src
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.
545 lines
23 KiB
545 lines
23 KiB
<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>
|
|
|