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.

544 lines
23 KiB

  1. <html xmlns:v="urn:schemas-microsoft-com:vml"
  2. xmlns:o="urn:schemas-microsoft-com:office:office"
  3. xmlns:w="urn:schemas-microsoft-com:office:word"
  4. xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
  5. xmlns:oa="urn:schemas-microsoft-com:office:activation"
  6. xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
  7. xmlns="http://www.w3.org/TR/REC-html40">
  8. <head>
  9. <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  10. <meta name=ProgId content=Word.Document>
  11. <meta name=Generator content="Microsoft Word 10">
  12. <meta name=Originator content="Microsoft Word 10">
  13. <link rel=File-List href="notify_files/filelist.xml">
  14. <title>Muxim Notify Object Sample</title>
  15. <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
  16. name="PlaceName"/>
  17. <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
  18. name="PlaceType"/>
  19. <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
  20. name="place"/>
  21. <!--[if gte mso 9]><xml>
  22. <w:WordDocument>
  23. <w:SpellingState>Clean</w:SpellingState>
  24. <w:GrammarState>Clean</w:GrammarState>
  25. <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  26. </w:WordDocument>
  27. </xml><![endif]--><!--[if !mso]><object
  28. classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
  29. <style>
  30. st1\:*{behavior:url(#ieooui) }
  31. </style>
  32. <![endif]-->
  33. <style>
  34. <!--
  35. /* Font Definitions */
  36. @font-face
  37. {font-family:SimSun;
  38. panose-1:2 1 6 0 3 1 1 1 1 1;
  39. mso-font-alt:����;
  40. mso-font-charset:134;
  41. mso-generic-font-family:auto;
  42. mso-font-format:other;
  43. mso-font-pitch:variable;
  44. mso-font-signature:1 135135232 16 0 262144 0;}
  45. @font-face
  46. {font-family:"\@SimSun";
  47. mso-font-charset:134;
  48. mso-generic-font-family:auto;
  49. mso-font-pitch:variable;
  50. mso-font-signature:3 135135232 16 0 262145 0;}
  51. @font-face
  52. {font-family:Verdana;
  53. panose-1:2 11 6 4 3 5 4 4 2 4;
  54. mso-font-charset:0;
  55. mso-generic-font-family:swiss;
  56. mso-font-pitch:variable;
  57. mso-font-signature:536871559 0 0 0 415 0;}
  58. @font-face
  59. {font-family:"MS Sans Serif";
  60. panose-1:0 0 0 0 0 0 0 0 0 0;
  61. mso-font-charset:0;
  62. mso-generic-font-family:swiss;
  63. mso-font-format:other;
  64. mso-font-pitch:variable;
  65. mso-font-signature:3 0 0 0 1 0;}
  66. /* Style Definitions */
  67. p.MsoNormal, li.MsoNormal, div.MsoNormal
  68. {mso-style-parent:"";
  69. margin:0in;
  70. margin-bottom:.0001pt;
  71. mso-pagination:widow-orphan;
  72. font-size:12.0pt;
  73. font-family:"Times New Roman";
  74. mso-fareast-font-family:"Times New Roman";}
  75. h1
  76. {mso-style-next:Normal;
  77. margin:0in;
  78. margin-bottom:.0001pt;
  79. mso-pagination:widow-orphan;
  80. page-break-after:avoid;
  81. mso-outline-level:1;
  82. font-size:10.0pt;
  83. font-family:Verdana;
  84. mso-fareast-font-family:SimSun;
  85. mso-font-kerning:0pt;
  86. font-weight:bold;}
  87. h2
  88. {mso-margin-top-alt:auto;
  89. margin-right:0in;
  90. mso-margin-bottom-alt:auto;
  91. margin-left:0in;
  92. mso-pagination:widow-orphan;
  93. mso-outline-level:2;
  94. font-size:18.0pt;
  95. font-family:"Times New Roman";
  96. mso-fareast-font-family:SimSun;
  97. font-weight:bold;}
  98. h3
  99. {mso-margin-top-alt:auto;
  100. margin-right:0in;
  101. mso-margin-bottom-alt:auto;
  102. margin-left:0in;
  103. mso-pagination:widow-orphan;
  104. mso-outline-level:3;
  105. font-size:13.5pt;
  106. font-family:"Times New Roman";
  107. mso-fareast-font-family:SimSun;
  108. font-weight:bold;}
  109. h4
  110. {mso-margin-top-alt:auto;
  111. margin-right:0in;
  112. mso-margin-bottom-alt:auto;
  113. margin-left:0in;
  114. mso-pagination:widow-orphan;
  115. mso-outline-level:4;
  116. font-size:12.0pt;
  117. font-family:"Times New Roman";
  118. mso-fareast-font-family:SimSun;
  119. font-weight:bold;}
  120. a:link, span.MsoHyperlink
  121. {color:blue;
  122. text-decoration:underline;
  123. text-underline:single;}
  124. a:visited, span.MsoHyperlinkFollowed
  125. {color:blue;
  126. text-decoration:underline;
  127. text-underline:single;}
  128. p
  129. {mso-margin-top-alt:auto;
  130. margin-right:0in;
  131. mso-margin-bottom-alt:auto;
  132. margin-left:0in;
  133. mso-pagination:widow-orphan;
  134. font-size:12.0pt;
  135. font-family:"Times New Roman";
  136. mso-fareast-font-family:"Times New Roman";}
  137. pre
  138. {margin:0in;
  139. margin-bottom:.0001pt;
  140. mso-pagination:widow-orphan;
  141. 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;
  142. font-size:10.0pt;
  143. font-family:"Courier New";
  144. mso-fareast-font-family:"Courier New";}
  145. span.SpellE
  146. {mso-style-name:"";
  147. mso-spl-e:yes;}
  148. span.GramE
  149. {mso-style-name:"";
  150. mso-gram-e:yes;}
  151. @page Section1
  152. {size:8.5in 11.0in;
  153. margin:1.0in 1.25in 1.0in 1.25in;
  154. mso-header-margin:.5in;
  155. mso-footer-margin:.5in;
  156. mso-paper-source:0;}
  157. div.Section1
  158. {page:Section1;}
  159. /* List Definitions */
  160. @list l0
  161. {mso-list-id:354117224;
  162. mso-list-type:hybrid;
  163. mso-list-template-ids:-730287492 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
  164. @list l0:level1
  165. {mso-level-number-format:bullet;
  166. mso-level-text:\F0B7;
  167. mso-level-tab-stop:.5in;
  168. mso-level-number-position:left;
  169. text-indent:-.25in;
  170. font-family:Symbol;}
  171. @list l0:level2
  172. {mso-level-tab-stop:1.0in;
  173. mso-level-number-position:left;
  174. text-indent:-.25in;}
  175. @list l0:level3
  176. {mso-level-tab-stop:1.5in;
  177. mso-level-number-position:left;
  178. text-indent:-.25in;}
  179. @list l0:level4
  180. {mso-level-tab-stop:2.0in;
  181. mso-level-number-position:left;
  182. text-indent:-.25in;}
  183. @list l0:level5
  184. {mso-level-tab-stop:2.5in;
  185. mso-level-number-position:left;
  186. text-indent:-.25in;}
  187. @list l0:level6
  188. {mso-level-tab-stop:3.0in;
  189. mso-level-number-position:left;
  190. text-indent:-.25in;}
  191. @list l0:level7
  192. {mso-level-tab-stop:3.5in;
  193. mso-level-number-position:left;
  194. text-indent:-.25in;}
  195. @list l0:level8
  196. {mso-level-tab-stop:4.0in;
  197. mso-level-number-position:left;
  198. text-indent:-.25in;}
  199. @list l0:level9
  200. {mso-level-tab-stop:4.5in;
  201. mso-level-number-position:left;
  202. text-indent:-.25in;}
  203. @list l1
  204. {mso-list-id:379671731;
  205. mso-list-type:hybrid;
  206. mso-list-template-ids:-1929328134 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
  207. @list l1:level1
  208. {mso-level-text:"%1\)";
  209. mso-level-tab-stop:.5in;
  210. mso-level-number-position:left;
  211. text-indent:-.25in;}
  212. @list l1:level2
  213. {mso-level-tab-stop:1.0in;
  214. mso-level-number-position:left;
  215. text-indent:-.25in;}
  216. @list l1:level3
  217. {mso-level-tab-stop:1.5in;
  218. mso-level-number-position:left;
  219. text-indent:-.25in;}
  220. @list l1:level4
  221. {mso-level-tab-stop:2.0in;
  222. mso-level-number-position:left;
  223. text-indent:-.25in;}
  224. @list l1:level5
  225. {mso-level-tab-stop:2.5in;
  226. mso-level-number-position:left;
  227. text-indent:-.25in;}
  228. @list l1:level6
  229. {mso-level-tab-stop:3.0in;
  230. mso-level-number-position:left;
  231. text-indent:-.25in;}
  232. @list l1:level7
  233. {mso-level-tab-stop:3.5in;
  234. mso-level-number-position:left;
  235. text-indent:-.25in;}
  236. @list l1:level8
  237. {mso-level-tab-stop:4.0in;
  238. mso-level-number-position:left;
  239. text-indent:-.25in;}
  240. @list l1:level9
  241. {mso-level-tab-stop:4.5in;
  242. mso-level-number-position:left;
  243. text-indent:-.25in;}
  244. @list l2
  245. {mso-list-id:1626816921;
  246. mso-list-type:hybrid;
  247. mso-list-template-ids:-553597382 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
  248. @list l2:level1
  249. {mso-level-text:"%1\)";
  250. mso-level-tab-stop:.5in;
  251. mso-level-number-position:left;
  252. text-indent:-.25in;}
  253. @list l2:level2
  254. {mso-level-tab-stop:1.0in;
  255. mso-level-number-position:left;
  256. text-indent:-.25in;}
  257. @list l2:level3
  258. {mso-level-tab-stop:1.5in;
  259. mso-level-number-position:left;
  260. text-indent:-.25in;}
  261. @list l2:level4
  262. {mso-level-tab-stop:2.0in;
  263. mso-level-number-position:left;
  264. text-indent:-.25in;}
  265. @list l2:level5
  266. {mso-level-tab-stop:2.5in;
  267. mso-level-number-position:left;
  268. text-indent:-.25in;}
  269. @list l2:level6
  270. {mso-level-tab-stop:3.0in;
  271. mso-level-number-position:left;
  272. text-indent:-.25in;}
  273. @list l2:level7
  274. {mso-level-tab-stop:3.5in;
  275. mso-level-number-position:left;
  276. text-indent:-.25in;}
  277. @list l2:level8
  278. {mso-level-tab-stop:4.0in;
  279. mso-level-number-position:left;
  280. text-indent:-.25in;}
  281. @list l2:level9
  282. {mso-level-tab-stop:4.5in;
  283. mso-level-number-position:left;
  284. text-indent:-.25in;}
  285. ol
  286. {margin-bottom:0in;}
  287. ul
  288. {margin-bottom:0in;}
  289. -->
  290. </style>
  291. <!--[if gte mso 10]>
  292. <style>
  293. /* Style Definitions */
  294. table.MsoNormalTable
  295. {mso-style-name:"Table Normal";
  296. mso-tstyle-rowband-size:0;
  297. mso-tstyle-colband-size:0;
  298. mso-style-noshow:yes;
  299. mso-style-parent:"";
  300. mso-padding-alt:0in 5.4pt 0in 5.4pt;
  301. mso-para-margin:0in;
  302. mso-para-margin-bottom:.0001pt;
  303. mso-pagination:widow-orphan;
  304. font-size:10.0pt;
  305. font-family:"Times New Roman";}
  306. </style>
  307. <![endif]-->
  308. </head>
  309. <body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
  310. <div class=Section1>
  311. <h2><span style='font-family:Verdana'>MUX.DLL � Sample Notify Object <o:p></o:p></span></h2>
  312. <p><span style='font-size:10.0pt;font-family:Arial;color:red'>[This is
  313. preliminary documentation and subject to change.]</span><span style='font-size:
  314. 10.0pt;font-family:Verdana'><o:p></o:p></span></p>
  315. <h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>
  316. <h3><span style='font-size:12.0pt;font-family:Verdana'>MUX Notify Object<o:p></o:p></span></h3>
  317. <p><span style='font-size:10.0pt;font-family:Verdana'>This sample demonstrates
  318. how to write a notify object for installing and configuring an NDIS MUX
  319. intermediate miniport (IM) driver that implements a N:1 relationship between
  320. upper and lower bindings i.e. it creates multiple virtual network devices on
  321. top of a single lower adapter. Protocols bind to these virtual adapters as if
  322. they are real adapters. Examples of </span><st1:place><st1:PlaceName><span
  323. style='font-size:10.0pt;font-family:Verdana'>Intermediate</span></st1:PlaceName><span
  324. style='font-size:10.0pt;font-family:Verdana'> </span><st1:PlaceType><span
  325. style='font-size:10.0pt;font-family:Verdana'>Miniport</span></st1:PlaceType></st1:place><span
  326. style='font-size:10.0pt;font-family:Verdana'> drivers that can use this type of
  327. notify objects are Virtual LAN (VLAN) drivers.<o:p></o:p></span></p>
  328. <p><b style='mso-bidi-font-weight:normal'><span style='font-family:Verdana'>Operation</span></b><span
  329. style='font-family:Verdana'><o:p></o:p></span></p>
  330. <p><span style='font-size:10.0pt;font-family:Verdana'>During installation, the
  331. notify object performs the following operations.<o:p></o:p></span></p>
  332. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
  333. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  334. font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
  335. style='mso-list:Ignore'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  336. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>It
  337. creates one virtual adapter for each physical adapter the MUX protocol edge
  338. binds to.<o:p></o:p></span></p>
  339. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
  340. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  341. font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
  342. style='mso-list:Ignore'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  343. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>It
  344. disables the bindings of other protocols such as TCP/IP to physical adapters if
  345. it has been compiled with DISABLE_PROTOCOLS_TO_PHYSICAL defined in the Sources
  346. file. This is the most commonly desired behavior for N:1 MUX drivers.<o:p></o:p></span></p>
  347. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
  348. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  349. font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
  350. style='mso-list:Ignore'>�<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  351. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>It
  352. disables the bindings of the protocol edge of the MUX IM driver with all its
  353. virtual adapters.<o:p></o:p></span></p>
  354. <p><span style='font-size:10.0pt;font-family:Verdana'>The notify object
  355. provides a custom property page for the MUX IM driver. The custom property page
  356. allows the user to add one or more virtual adapters on top of a physical
  357. adapter or delete an existing virtual adapter.<o:p></o:p></span></p>
  358. <p><span style='font-size:10.0pt;font-family:Verdana'>When the MUX IM driver is
  359. uninstalled, binding is disabled, or the user deletes all the virtual adapters
  360. on top of a physical adapter, the notify object restores the bindings of other
  361. protocols to the physical adapter if it has been compiled with the preprocessor
  362. flag DISABLE_PROTOCOLS_TO_PHYSICAL defined in the Sources file.<o:p></o:p></span></p>
  363. <p><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;
  364. font-family:Verdana'>Windows 2000 Specific<o:p></o:p></span></b></p>
  365. <p><span style='font-size:10.0pt;font-family:Verdana'>During the installation,
  366. the notify object copies the INF file for the virtual adapter from the
  367. installation media to the system INF directory by using the <span class=SpellE>SetupCopyOEMInf</span>
  368. function. This is done because Windows 2000 does not support the <span
  369. class=SpellE>CopyINF</span> directive to copy INF files from another INF file.<o:p></o:p></span></p>
  370. <h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>
  371. <p style='tab-stops:657.0pt'><span style='font-size:10.0pt;font-family:Verdana'>To
  372. build the sample, type <b>build -ceZ</b>. This command produces the binary
  373. mux.dll, which is the sample notify object.<o:p></o:p></span></p>
  374. <p><span style='font-size:10.0pt;font-family:Verdana'>The sample compiles
  375. properly for 32-bit and 64-bit, and builds properly with Microsoft� Visual C�
  376. 6.0.<o:p></o:p></span></p>
  377. <p><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;
  378. font-family:Verdana'>Preprocessor Flags:<o:p></o:p></span></b></p>
  379. <p><span style='font-size:10.0pt;font-family:Verdana'>DISABLE_PROTOCOLS_TO_PHYSICAL<o:p></o:p></span></p>
  380. <p><span style='font-size:10.0pt;font-family:Verdana'>When this flag is defined
  381. in the Sources file, the notify object disables the bindings of other protocols
  382. such as TCP/IP to the physical adapters during the installation. When all the
  383. virtual adapters are removed either through the custom property page or as a
  384. result of uninstalling the MUX driver, the notify object re-enables those
  385. bindings.<o:p></o:p></span></p>
  386. <p><span style='font-size:10.0pt;font-family:Verdana'>PASSTHRU_NOTIFY<o:p></o:p></span></p>
  387. <p><span style='font-size:10.0pt;font-family:Verdana'>This is defined to allow
  388. the MUX driver to be used in a <span class=SpellE>passthru</span> mode. When
  389. this flag is defined, the notify object:<o:p></o:p></span></p>
  390. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo4;
  391. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  392. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  393. style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  394. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Creates
  395. only one virtual miniport for every physical adapter the MUX protocol edge
  396. binds to.<o:p></o:p></span></p>
  397. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo4;
  398. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  399. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  400. style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  401. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Disables
  402. the property page to prevent adding of additional virtual miniports. <o:p></o:p></span></p>
  403. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo4;
  404. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  405. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  406. style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  407. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Stores
  408. the device name of the virtual adapter in REG_SZ registry value under
  409. HKLM\System\<span class=SpellE>CurrentControlSet\Services\muxp\Parameters\Adapters</span><span
  410. class=GramE>\{</span><span class=SpellE><i style='mso-bidi-font-style:normal'>PhysicalAdaptersInstanceGuid</i></span><i
  411. style='mso-bidi-font-style:normal'>}\</i>UpperBindings, because there is one to
  412. one binding. In the MUX mode (when this flag is not defined), the notify object
  413. stores the device name in a REG_MULTI_SZ registry value as there could be more
  414. than one virtual miniports.<o:p></o:p></span></p>
  415. <p style='margin-left:.25in'><span style='font-size:10.0pt;font-family:Verdana'>You
  416. can also use this notify object with the Passthru driver by doing the
  417. following:<o:p></o:p></span></p>
  418. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
  419. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  420. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  421. style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  422. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Change
  423. the protocol name in file <span class=SpellE>src\network\ndis\passthru\passthru.c</span>
  424. from PASSTHRU to MUXP.<o:p></o:p></span></p>
  425. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
  426. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  427. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  428. style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  429. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Change
  430. the driver name from Passthru to MUX in the sources file.<o:p></o:p></span></p>
  431. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
  432. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  433. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  434. style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  435. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Rebuild
  436. the driver to obtain a mux.sys driver binary.<o:p></o:p></span></p>
  437. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
  438. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  439. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  440. style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  441. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Build
  442. the MUX notify object with PASSTHRU_NOTIFY defined.<o:p></o:p></span></p>
  443. <p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo6;
  444. tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt;
  445. font-family:Verdana;mso-fareast-font-family:Verdana;mso-bidi-font-family:Verdana'><span
  446. style='mso-list:Ignore'>5)<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
  447. </span></span></span><![endif]><span style='font-size:10.0pt;font-family:Verdana'>Use
  448. the MUX <span class=SpellE><span class=GramE>inf</span></span> files, <span
  449. class=SpellE>muxp.inf</span> and <span class=SpellE>mux_mp.inf</span>, to
  450. install the driver and <span class=SpellE>dll</span>.<o:p></o:p></span></p>
  451. <p><span style='font-size:10.0pt;font-family:Verdana'>The benefit of using techniques
  452. in the MUX notify object for a 1:1 intermediate driver (e.g. Passthru) is to be
  453. able to exercise higher level of control over the bindings of MUX with other
  454. components in the system, which is not possible with the IM filter driver.<o:p></o:p></span></p>
  455. <p><span style='font-size:10.0pt;font-family:Verdana'>CUSTOM_EVENTS<o:p></o:p></span></p>
  456. <p><span style='font-size:10.0pt;font-family:Verdana'>When this macro is
  457. defined, the notify object shows how to send custom events to the MUX IM driver
  458. when a virtual miniport is added or removed.<o:p></o:p></span></p>
  459. <h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3>
  460. <h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4>
  461. <pre><u>File<span style='mso-tab-count:2'>���������� </span>Description<o:p></o:p></u></pre><pre><span
  462. class=SpellE>Dllmain.cpp</span><span style='mso-tab-count:1'>��� </span>File containing implementations of DLL entry point and exports. </pre><pre><span
  463. class=SpellE>Implinc.cpp</span><span style='mso-tab-count:1'>��� </span>File including source code for ATL utilities.</pre><pre>mux.htm<span
  464. style='mso-tab-count:2'>������� </span>The documentation for this sample.</pre><pre><span
  465. class=SpellE>Pch.h</span><span style='mso-tab-count:2'>��������� </span>Pre-compiled header file.</pre><pre><span
  466. class=SpellE>Resource.h</span><span style='mso-tab-count:1'>���� </span>The resource header.</pre><pre><span
  467. class=SpellE>notify.cpp</span><span style='mso-tab-count:1'>���� </span>Notify object implementation.</pre><pre><span
  468. class=SpellE>virtual.cpp</span><span style='mso-tab-count:1'>��� </span>Virtual adapter class implementation.</pre><pre><span
  469. class=SpellE>adapter.cpp</span><span style='mso-tab-count:1'>��� </span>Physical adapter class implementation.</pre><pre><span
  470. class=SpellE>common.cpp</span><span style='mso-tab-count:1'>���� </span>Global functions, variables and macro definitions.</pre><pre><span
  471. class=SpellE>mux.def</span><span style='mso-tab-count:2'>������� </span>The sample's linker definition file.</pre><pre><span
  472. class=SpellE>mux.h</span><span style='mso-tab-count:2'>��������� </span>The header file for <span
  473. class=SpellE>mux.cpp</span>.</pre><pre><span class=SpellE>virtual.h</span><span
  474. style='mso-tab-count:1'>����� </span>Virtual adapter class declaration.</pre><pre><span
  475. class=SpellE>Adapter.h</span><span style='mso-tab-count:1'>����� </span>Physical adapter class declaration.</pre><pre><span
  476. class=SpellE>notify.rc</span><span style='mso-tab-count:1'>����� </span>The resource file.</pre><pre><span
  477. class=SpellE>notify.rgs</span><span style='mso-tab-count:1'>���� </span>Script-based registry.</pre><pre><span
  478. class=SpellE>notifyn.idl</span><span style='mso-tab-count:1'>��� </span>The notify object's .<span
  479. class=SpellE>idl</span> file.</pre><pre><span class=SpellE>setupdi.cpp</span><span
  480. style='mso-tab-count:1'>��� </span>Functions to copy the miniport INF file to the system.</pre><pre><o:p>&nbsp;</o:p></pre>
  481. <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
  482. style='mso-bidi-font-weight:normal'><a href="#_top"><span style='font-size:
  483. 10.0pt;font-family:Verdana;font-weight:normal'>Top of page</span></a></b><span
  484. style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
  485. <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=624
  486. style='width:6.5in;mso-cellspacing:0in;mso-padding-alt:0in 0in 0in 0in'>
  487. <tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes;height:1.5pt'>
  488. <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'>
  489. <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  490. </td>
  491. </tr>
  492. </table>
  493. <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
  494. style='font-size:7.5pt;font-family:"MS Sans Serif"'>� Microsoft Corporation
  495. 2001</span><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
  496. </div>
  497. </body>
  498. </html>
  499.