summaryrefslogtreecommitdiff
path: root/SPB
diff options
context:
space:
mode:
authorkarlf <[email protected]>2016-08-11 13:28:13 -0700
committerkarlf <[email protected]>2016-08-11 13:28:13 -0700
commit96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch)
treead5f3ede5cbcd6b598677ce41bcf8318471bdd92 /SPB
parent687b274aa38fd05c8c26e3068932121876d7f745 (diff)
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'SPB')
-rw-r--r--SPB/SpbTestTool/SpbTestTool.htm2688
1 files changed, 2688 insertions, 0 deletions
diff --git a/SPB/SpbTestTool/SpbTestTool.htm b/SPB/SpbTestTool/SpbTestTool.htm
new file mode 100644
index 00000000..5cab8aaa
--- /dev/null
+++ b/SPB/SpbTestTool/SpbTestTool.htm
@@ -0,0 +1,2688 @@
+<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:m="http://schemas.microsoft.com/office/2004/12/omml"
+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 14">
+<meta name=Originator content="Microsoft Word 14">
+<link rel=File-List href="SpbTestTool_files/filelist.xml">
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Andrew Dye</o:Author>
+ <o:Template>Normal</o:Template>
+ <o:LastAuthor>Andrew Dye</o:LastAuthor>
+ <o:Revision>63</o:Revision>
+ <o:TotalTime>1484</o:TotalTime>
+ <o:Created>2011-03-07T22:35:00Z</o:Created>
+ <o:LastSaved>2012-03-06T18:39:00Z</o:LastSaved>
+ <o:Pages>2</o:Pages>
+ <o:Words>1219</o:Words>
+ <o:Characters>6949</o:Characters>
+ <o:Company>Microsoft Corporation</o:Company>
+ <o:Lines>57</o:Lines>
+ <o:Paragraphs>16</o:Paragraphs>
+ <o:CharactersWithSpaces>8152</o:CharactersWithSpaces>
+ <o:Version>14.00</o:Version>
+ </o:DocumentProperties>
+ <o:OfficeDocumentSettings>
+ <o:AllowPNG/>
+ </o:OfficeDocumentSettings>
+</xml><![endif]-->
+<link rel=themeData href="SpbTestTool_files/themedata.thmx">
+<link rel=colorSchemeMapping href="SpbTestTool_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:Zoom>90</w:Zoom>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:PunctuationKerning/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:EnableOpenTypeKerning/>
+ <w:DontFlipMirrorIndents/>
+ <w:OverrideTableStyleHps/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Cambria;
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:roman;
+ mso-font-pitch:variable;
+ mso-font-signature:-536870145 1073743103 0 0 415 0;}
+@font-face
+ {font-family:Calibri;
+ panose-1:2 15 5 2 2 2 4 3 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520092929 1073786111 9 0 415 0;}
+@font-face
+ {font-family:Tahoma;
+ 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:-520081665 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin-top:0in;
+ margin-right:0in;
+ margin-bottom:10.0pt;
+ margin-left:0in;
+ line-height:115%;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ mso-style-next:Normal;
+ margin-top:24.0pt;
+ margin-right:0in;
+ margin-bottom:0in;
+ margin-left:0in;
+ margin-bottom:.0001pt;
+ line-height:115%;
+ mso-pagination:widow-orphan lines-together;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ mso-font-kerning:0pt;}
+h2
+ {mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ mso-style-next:Normal;
+ margin-top:10.0pt;
+ margin-right:0in;
+ margin-bottom:0in;
+ margin-left:0in;
+ margin-bottom:.0001pt;
+ line-height:115%;
+ mso-pagination:widow-orphan lines-together;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;}
+h3
+ {mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 3 Char";
+ mso-style-next:Normal;
+ margin-top:10.0pt;
+ margin-right:0in;
+ margin-bottom:0in;
+ margin-left:0in;
+ margin-bottom:.0001pt;
+ line-height:115%;
+ mso-pagination:widow-orphan lines-together;
+ page-break-after:avoid;
+ mso-outline-level:3;
+ font-size:11.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;}
+a:link, span.MsoHyperlink
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ color:blue;
+ mso-themecolor:hyperlink;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ color:purple;
+ mso-themecolor:followedhyperlink;
+ text-decoration:underline;
+ text-underline:single;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;}
+p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
+ {mso-style-priority:34;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ margin-top:0in;
+ margin-right:0in;
+ margin-bottom:10.0pt;
+ margin-left:.5in;
+ mso-add-space:auto;
+ line-height:115%;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
+ {mso-style-priority:34;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-type:export-only;
+ margin-top:0in;
+ margin-right:0in;
+ margin-bottom:0in;
+ margin-left:.5in;
+ margin-bottom:.0001pt;
+ mso-add-space:auto;
+ line-height:115%;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
+ {mso-style-priority:34;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-type:export-only;
+ margin-top:0in;
+ margin-right:0in;
+ margin-bottom:0in;
+ margin-left:.5in;
+ margin-bottom:.0001pt;
+ mso-add-space:auto;
+ line-height:115%;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
+ {mso-style-priority:34;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-type:export-only;
+ margin-top:0in;
+ margin-right:0in;
+ margin-bottom:10.0pt;
+ margin-left:.5in;
+ mso-add-space:auto;
+ line-height:115%;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.Heading3Char
+ {mso-style-name:"Heading 3 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 3";
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-fareast-font-family:Calibri;
+ mso-fareast-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+@page WordSection1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.WordSection1
+ {page:WordSection1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:82662;
+ mso-list-type:hybrid;
+ mso-list-template-ids:1993770496 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l0:level1
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level2
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level3
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l0:level4
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level5
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level6
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l0:level7
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level8
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level9
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l1
+ {mso-list-id:817961102;
+ mso-list-type:hybrid;
+ mso-list-template-ids:-2084670382 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l1:level1
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level2
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level3
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l1:level4
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l1:level7
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l2
+ {mso-list-id:1777359170;
+ mso-list-type:hybrid;
+ mso-list-template-ids:389167368 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l2:level1
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level2
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level3
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l2:level4
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level5
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level6
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l2:level7
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level8
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level9
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l3
+ {mso-list-id:1998486757;
+ mso-list-type:hybrid;
+ mso-list-template-ids:1064217798 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+@list l3:level1
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level2
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level3
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l3:level4
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level5
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level6
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+@list l3:level7
+ {mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level8
+ {mso-level-number-format:alpha-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level9
+ {mso-level-number-format:roman-lower;
+ mso-level-tab-stop:none;
+ mso-level-number-position:right;
+ text-indent:-9.0pt;}
+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-priority:99;
+ 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:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+table.MsoTableGrid
+ {mso-style-name:"Table Grid";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-priority:59;
+ mso-style-unhide:no;
+ border:solid windowtext 1.0pt;
+ mso-border-alt:solid windowtext .5pt;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-border-insideh:.5pt solid windowtext;
+ mso-border-insidev:.5pt solid windowtext;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+table.MsoTableLightShadingAccent1
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-tstyle-rowband-size:1;
+ mso-tstyle-colband-size:1;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ border-top:solid #4F81BD 1.0pt;
+ mso-border-top-themecolor:accent1;
+ border-left:none;
+ border-bottom:solid #4F81BD 1.0pt;
+ mso-border-bottom-themecolor:accent1;
+ border-right:none;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;}
+table.MsoTableLightShadingAccent1FirstRow
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-table-condition:first-row;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:1.0pt solid #4F81BD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-left:cell-none;
+ mso-tstyle-border-bottom:1.0pt solid #4F81BD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-right:cell-none;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightShadingAccent1LastRow
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-table-condition:last-row;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:1.0pt solid #4F81BD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-left:cell-none;
+ mso-tstyle-border-bottom:1.0pt solid #4F81BD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-right:cell-none;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightShadingAccent1FirstCol
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-table-condition:first-column;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightShadingAccent1LastCol
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-table-condition:last-column;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightShadingAccent1OddColumn
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-table-condition:odd-column;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#D3DFEE;
+ mso-tstyle-shading-themecolor:accent1;
+ mso-tstyle-shading-themetint:63;
+ mso-tstyle-border-left:cell-none;
+ mso-tstyle-border-right:cell-none;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;}
+table.MsoTableLightShadingAccent1OddRow
+ {mso-style-name:"Light Shading - Accent 1";
+ mso-table-condition:odd-row;
+ mso-style-priority:60;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#D3DFEE;
+ mso-tstyle-shading-themecolor:accent1;
+ mso-tstyle-shading-themetint:63;
+ mso-tstyle-border-left:cell-none;
+ mso-tstyle-border-right:cell-none;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;}
+table.MsoTableLightListAccent1
+ {mso-style-name:"Light List - Accent 1";
+ mso-tstyle-rowband-size:1;
+ mso-tstyle-colband-size:1;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ border:solid #4F81BD 1.0pt;
+ mso-border-themecolor:accent1;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+table.MsoTableLightListAccent1FirstRow
+ {mso-style-name:"Light List - Accent 1";
+ mso-table-condition:first-row;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#4F81BD;
+ mso-tstyle-shading-themecolor:accent1;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ color:white;
+ mso-themecolor:background1;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightListAccent1LastRow
+ {mso-style-name:"Light List - Accent 1";
+ mso-table-condition:last-row;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:2.25pt double #4F81BD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-left:1.0pt solid #4F81BD;
+ mso-tstyle-border-left-themecolor:accent1;
+ mso-tstyle-border-bottom:1.0pt solid #4F81BD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-right:1.0pt solid #4F81BD;
+ mso-tstyle-border-right-themecolor:accent1;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightListAccent1FirstCol
+ {mso-style-name:"Light List - Accent 1";
+ mso-table-condition:first-column;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightListAccent1LastCol
+ {mso-style-name:"Light List - Accent 1";
+ mso-table-condition:last-column;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableLightListAccent1OddColumn
+ {mso-style-name:"Light List - Accent 1";
+ mso-table-condition:odd-column;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:1.0pt solid #4F81BD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-left:1.0pt solid #4F81BD;
+ mso-tstyle-border-left-themecolor:accent1;
+ mso-tstyle-border-bottom:1.0pt solid #4F81BD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-right:1.0pt solid #4F81BD;
+ mso-tstyle-border-right-themecolor:accent1;}
+table.MsoTableLightListAccent1OddRow
+ {mso-style-name:"Light List - Accent 1";
+ mso-table-condition:odd-row;
+ mso-style-priority:61;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:1.0pt solid #4F81BD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-left:1.0pt solid #4F81BD;
+ mso-tstyle-border-left-themecolor:accent1;
+ mso-tstyle-border-bottom:1.0pt solid #4F81BD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-right:1.0pt solid #4F81BD;
+ mso-tstyle-border-right-themecolor:accent1;}
+table.MsoTableMediumShading1Accent1
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-tstyle-rowband-size:1;
+ mso-tstyle-colband-size:1;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;
+ mso-border-themetint:191;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-border-insideh:1.0pt solid #7BA0CD;
+ mso-border-insideh-themecolor:accent1;
+ mso-border-insideh-themetint:191;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+table.MsoTableMediumShading1Accent1FirstRow
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:first-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#4F81BD;
+ mso-tstyle-shading-themecolor:accent1;
+ mso-tstyle-border-top:1.0pt solid #7BA0CD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-top-themetint:191;
+ mso-tstyle-border-left:1.0pt solid #7BA0CD;
+ mso-tstyle-border-left-themecolor:accent1;
+ mso-tstyle-border-left-themetint:191;
+ mso-tstyle-border-bottom:1.0pt solid #7BA0CD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-bottom-themetint:191;
+ mso-tstyle-border-right:1.0pt solid #7BA0CD;
+ mso-tstyle-border-right-themecolor:accent1;
+ mso-tstyle-border-right-themetint:191;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ color:white;
+ mso-themecolor:background1;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent1LastRow
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:last-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:2.25pt double #7BA0CD;
+ mso-tstyle-border-top-themecolor:accent1;
+ mso-tstyle-border-top-themetint:191;
+ mso-tstyle-border-left:1.0pt solid #7BA0CD;
+ mso-tstyle-border-left-themecolor:accent1;
+ mso-tstyle-border-left-themetint:191;
+ mso-tstyle-border-bottom:1.0pt solid #7BA0CD;
+ mso-tstyle-border-bottom-themecolor:accent1;
+ mso-tstyle-border-bottom-themetint:191;
+ mso-tstyle-border-right:1.0pt solid #7BA0CD;
+ mso-tstyle-border-right-themecolor:accent1;
+ mso-tstyle-border-right-themetint:191;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent1FirstCol
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:first-column;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent1LastCol
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:last-column;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent1OddColumn
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:odd-column;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#D3DFEE;
+ mso-tstyle-shading-themecolor:accent1;
+ mso-tstyle-shading-themetint:63;}
+table.MsoTableMediumShading1Accent1OddRow
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:odd-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#D3DFEE;
+ mso-tstyle-shading-themecolor:accent1;
+ mso-tstyle-shading-themetint:63;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;}
+table.MsoTableMediumShading1Accent1EvenRow
+ {mso-style-name:"Medium Shading 1 - Accent 1";
+ mso-table-condition:even-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;}
+table.MsoTableMediumShading1Accent5
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-tstyle-rowband-size:1;
+ mso-tstyle-colband-size:1;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ border:solid #78C0D4 1.0pt;
+ mso-border-themecolor:accent5;
+ mso-border-themetint:191;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-border-insideh:1.0pt solid #78C0D4;
+ mso-border-insideh-themecolor:accent5;
+ mso-border-insideh-themetint:191;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";
+ mso-ascii-font-family:Calibri;
+ mso-ascii-theme-font:minor-latin;
+ mso-hansi-font-family:Calibri;
+ mso-hansi-theme-font:minor-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:minor-bidi;}
+table.MsoTableMediumShading1Accent5FirstRow
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:first-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#4BACC6;
+ mso-tstyle-shading-themecolor:accent5;
+ mso-tstyle-border-top:1.0pt solid #78C0D4;
+ mso-tstyle-border-top-themecolor:accent5;
+ mso-tstyle-border-top-themetint:191;
+ mso-tstyle-border-left:1.0pt solid #78C0D4;
+ mso-tstyle-border-left-themecolor:accent5;
+ mso-tstyle-border-left-themetint:191;
+ mso-tstyle-border-bottom:1.0pt solid #78C0D4;
+ mso-tstyle-border-bottom-themecolor:accent5;
+ mso-tstyle-border-bottom-themetint:191;
+ mso-tstyle-border-right:1.0pt solid #78C0D4;
+ mso-tstyle-border-right-themecolor:accent5;
+ mso-tstyle-border-right-themetint:191;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ color:white;
+ mso-themecolor:background1;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent5LastRow
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:last-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-border-top:2.25pt double #78C0D4;
+ mso-tstyle-border-top-themecolor:accent5;
+ mso-tstyle-border-top-themetint:191;
+ mso-tstyle-border-left:1.0pt solid #78C0D4;
+ mso-tstyle-border-left-themecolor:accent5;
+ mso-tstyle-border-left-themetint:191;
+ mso-tstyle-border-bottom:1.0pt solid #78C0D4;
+ mso-tstyle-border-bottom-themecolor:accent5;
+ mso-tstyle-border-bottom-themetint:191;
+ mso-tstyle-border-right:1.0pt solid #78C0D4;
+ mso-tstyle-border-right-themecolor:accent5;
+ mso-tstyle-border-right-themetint:191;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;
+ mso-para-margin-top:auto;
+ mso-para-margin-bottom:auto;
+ line-height:normal;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent5FirstCol
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:first-column;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent5LastCol
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:last-column;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-ansi-font-weight:bold;
+ mso-bidi-font-weight:bold;}
+table.MsoTableMediumShading1Accent5OddColumn
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:odd-column;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#D2EAF1;
+ mso-tstyle-shading-themecolor:accent5;
+ mso-tstyle-shading-themetint:63;}
+table.MsoTableMediumShading1Accent5OddRow
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:odd-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-shading:#D2EAF1;
+ mso-tstyle-shading-themecolor:accent5;
+ mso-tstyle-shading-themetint:63;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;}
+table.MsoTableMediumShading1Accent5EvenRow
+ {mso-style-name:"Medium Shading 1 - Accent 5";
+ mso-table-condition:even-row;
+ mso-style-priority:63;
+ mso-style-unhide:no;
+ mso-tstyle-border-insideh:cell-none;
+ mso-tstyle-border-insidev:cell-none;}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="1026"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
+
+<div class=WordSection1>
+
+<h1>SpbTestTool</h1>
+
+<h2>Summary</h2>
+
+<p class=MsoNormal>The SpbTestTool sample serves two purposes.<span
+style='mso-spacerun:yes'>� </span>One, it demonstrates how to open a handle to
+the SPB controller, use the SPB interface from a KMDF driver, and employ GPIO
+passive-level interrupts.<span style='mso-spacerun:yes'>� </span>Two, it allows
+for communication with a peripheral using SPB commands to aide in debugging.</p>
+
+<p class=MsoNormal>This sample is incomplete as a driver and merely
+demonstrates use of the SPB API and GPIO interrupts.<span
+style='mso-spacerun:yes'>� </span>It is not intended for use in a production
+environment.</p>
+
+<h2>Building the Sample</h2>
+
+<h3>Peripheral driver</h3>
+
+<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Navigate to src\SPB\SpbTestTool\sys and launch
+the vcxproj file</p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Modify SpbTestTool.inx</p>
+
+<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space:
+auto;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Replace ACPI\SpbTestTool with appropriate
+peripheral HWID</p>
+
+<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space:
+auto;text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>b.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Set the �ConnectInterrupt registery� setting to
+1 to connect the first interrupt resource found, otherwise leave at 0 to leave
+disconnected.<span style='mso-spacerun:yes'>� </span>See SpbTestTool_AddReg
+section.</p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Build the project in Visual Studio</p>
+
+<p class=MsoListParagraphCxSpLast style='margin-left:1.0in;mso-add-space:auto;
+text-indent:-.25in;mso-list:l1 level2 lfo2'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Produces SpbTestTool.inf and SpbTestTool.sys</p>
+
+<h3>Application</h3>
+
+<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l0 level1 lfo4'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Navigate to src\SPB\SpbTestTool\exe and launch
+the vcxproj file</p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l0 level1 lfo4'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Build the project in Visual Studio</p>
+
+<p class=MsoListParagraphCxSpLast style='margin-left:1.0in;mso-add-space:auto;
+text-indent:-.25in;mso-list:l0 level2 lfo4'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Produces SpbTestTool.exe</p>
+
+<h2>Installation</h2>
+
+<p class=MsoNormal>To install the SpbTestTool driver:</p>
+
+<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l2 level1 lfo6'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Ensure that the driver builds without errors</p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l2 level1 lfo6'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Copy the SYS and INF files to a separate folder</p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l2 level1 lfo6'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Run <b style='mso-bidi-font-weight:normal'>devcon.exe</b>.<span
+style='mso-spacerun:yes'>� </span>You can find this program in the tools\devcon
+folder where you installed the WDK.<span style='mso-spacerun:yes'>� </span>Type
+the following command in the command window.</p>
+
+<p class=MsoListParagraphCxSpLast style='margin-left:1.0in;mso-add-space:auto;
+text-indent:-.25in;mso-list:l2 level2 lfo6'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>devcon.exe
+update SpbTestTool.inf ACPI\&lt;hwid&gt;</b></p>
+
+<h2>Code Tour</h2>
+
+<p class=MsoNormal>The following are relevant functions in the SpbTestTool
+peripheral for using the SPB interface from a KMDF driver.</p>
+
+<table class=MsoTableMediumShading1Accent1 border=1 cellspacing=0
+ cellpadding=0 style='border-collapse:collapse;border:none;mso-border-alt:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;mso-yfti-tbllook:1184;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt'>
+ <tr style='mso-yfti-irow:-1;mso-yfti-firstrow:yes'>
+ <td width=211 valign=top style='width:158.15pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-right:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:5'><b><span style='color:white;mso-themecolor:background1'>Function<o:p></o:p></span></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-left:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:1'><b><span style='color:white;mso-themecolor:background1'>Description<o:p></o:p></span></b></p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:0'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>OnPrepareHardware<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Traverses the driver�s start resources and caches
+ the connection ID of the I2C or SPI resource.<span style='mso-spacerun:yes'>�
+ </span>This ID will be used to open the SPB controller later on.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:1'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralOpen<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Opens a handle to the underlying SPB controller via
+ the resource hub.<span style='mso-spacerun:yes'>� </span>This allows the
+ peripheral driver to be developed without any underlying knowledge of the
+ platform or hardware connections.<span style='mso-spacerun:yes'>�
+ </span>Instead, the dependency between controller and peripheral is described
+ in ACPI.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:2'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralClose<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Closes the handle to the SPB controller.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:3'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralLock<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Sends IOCTL_SPB_LOCK_CONTROLLER to the SPB
+ controller to lock the bus for exclusive access by this peripheral.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:4'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralUnlock<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Sends IOCTL_SPB_UNLOCK_CONTROLLER to the SPB
+ controller to unlock the bus from exclusive access by this peripheral.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:5'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralLockConnection<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Sends IOCTL_SPB_LOCK_CONNECTION to the SPB
+ controller to lock the shared connection for exclusive access by this target
+ (file handle).</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:6'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralUnlockConnection<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Sends IOCTL_SPB_UNLOCK_CONNECTION to the SPB
+ controller to unlock the shared connection from exclusive access by this
+ target (file handle).</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:7'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralRead<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Sends a read request to the SPB controller.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:8'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralWrite<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Sends a write request to the SPB controller.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:9'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralWriteRead<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Builds a write-read sequence and sends
+ IOCTL_SPB_EXECUTE_SEQUENCE to the SPB controller.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:10'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralFullDuplex<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Builds a full duplex IO and sends
+ IOCTL_SPB_FULL_DUPLEX to the SPB controller.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:11;mso-yfti-lastrow:yes'>
+ <td width=211 valign=top style='width:158.15pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralOnComplete<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Completion callback for all IO.</p>
+ </td>
+ </tr>
+</table>
+
+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
+
+<p class=MsoNormal>The following are relevant functions in the SpbTestTool
+peripheral for managing GPIO passive-level interrupts from a KMDF driver.</p>
+
+<table class=MsoTableMediumShading1Accent1 border=1 cellspacing=0
+ cellpadding=0 style='border-collapse:collapse;border:none;mso-border-alt:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;mso-yfti-tbllook:1184;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt'>
+ <tr style='mso-yfti-irow:-1;mso-yfti-firstrow:yes'>
+ <td width=205 valign=top style='width:154.0pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-right:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:5'><b><span style='color:white;mso-themecolor:background1'>Function<o:p></o:p></span></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-left:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:1'><b><span style='color:white;mso-themecolor:background1'>Description<o:p></o:p></span></b></p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:0'>
+ <td width=205 valign=top style='width:154.0pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>OnPrepareHardware<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Traverses the driver�s start resources. If
+ �ConnectInterrupt� is set to 1 in the registry, the driver connects the first
+ interrupt resource found and registers an interrupt service routine.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:1'>
+ <td width=205 valign=top style='width:154.0pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>OnInterruptIsr<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>The interrupt service routine, which has been configured
+ to run at passive-level.<span style='mso-spacerun:yes'>� </span>Doing so
+ enables the driver to acknowledge or <span lang=EN style='mso-ansi-language:
+ EN'>quiesce </span>the interrupt using the SPB interface, which cannot be
+ called at DIRQL.</p>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'><o:p>&nbsp;</o:p></p>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Typically a driver will clear the hardware
+ interrupt and save any volatile information in its ISR, and then it will
+ queue a workitem to continue processing.<span style='mso-spacerun:yes'>�
+ </span>Our sample driver instead notifies the SpbTestTool app that an
+ interrupt has occurred and calls KeWaitForSingleObject to wait until the
+ interrupt is handled before returning. A �real� driver should never stall in
+ the ISR like this.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:2'>
+ <td width=205 valign=top style='width:154.0pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralWaitOnInterrupt<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Called to pend a WaitOnInterrupt request in the
+ driver, which will be completed when the next interrupt occurs.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:3'>
+ <td width=205 valign=top style='width:154.0pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>SpbPeripheralInterruptNotify<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Completes an outstanding WaitOnInterrupt request to
+ inform the SpbTestTool app that an interrupt has occurred.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:4;mso-yfti-lastrow:yes'>
+ <td width=205 valign=top style='width:154.0pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>SpbPeripheralSignalInterrupt<o:p></o:p></b></p>
+ </td>
+ <td width=441 valign=top style='width:330.7pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Notifies the interrupt service routine that the
+ interrupt has been handled and the ISR should return.</p>
+ </td>
+ </tr>
+</table>
+
+<h2>Application Walkthrough</h2>
+
+<h3>Launching the app</h3>
+
+<p class=MsoNormal>To launch the SpbTestTool application:</p>
+
+<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l3 level1 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Navigate to the directory with SpbTestTool.exe</p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l3 level1 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>Type the following command in the command
+window:</p>
+
+<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space:
+auto;text-indent:-.25in;mso-list:l3 level2 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>SpbTestTool.exe</b></p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l3 level1 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>An alternate peripheral driver path can also be
+used.<span style='mso-spacerun:yes'>� </span>Note, this driver must implement
+the private SpbTestTool interface</p>
+
+<p class=MsoListParagraphCxSpMiddle style='margin-left:1.0in;mso-add-space:
+auto;text-indent:-.25in;mso-list:l3 level2 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>SpbTestTool.exe
+/p \\.\&lt;alternate_path&gt;</b></p>
+
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-.25in;mso-list:l3 level1 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]>An input script can used instead of an
+interactive prompt.<span style='mso-spacerun:yes'>� </span>The format is one
+command per line.<span style='mso-spacerun:yes'>� </span>See below for
+commands.</p>
+
+<p class=MsoListParagraphCxSpLast style='margin-left:1.0in;mso-add-space:auto;
+text-indent:-.25in;mso-list:l3 level2 lfo8'><![if !supportLists]><span
+style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
+style='mso-list:Ignore'>a.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>SpbTestTool.exe
+/i &lt;script.txt&gt;</b></p>
+
+<h3><a name="_Ref287274702"></a><a name="_Executing_commands"></a><span
+style='mso-bookmark:_Ref287274702'>Executing commands</span></h3>
+
+<p class=MsoNormal>The application will loop indefinitely waiting for one of
+the following commands.<span style='mso-spacerun:yes'>� </span>The commands are
+translated to the appropriate SPB API action without any state tracking in the
+driver.<span style='mso-spacerun:yes'>� </span>Transfer status, buffers, and
+error codes are returned as necessary.<span style='mso-spacerun:yes'>�
+</span>Type �help� at any time to display this list.<span
+style='mso-spacerun:yes'>� </span>Press Ctrl-C at any time to cancel the
+current command and exit the application.</p>
+
+<table class=MsoTableMediumShading1Accent1 border=1 cellspacing=0
+ cellpadding=0 style='border-collapse:collapse;border:none;mso-border-alt:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;mso-yfti-tbllook:1184;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt'>
+ <tr style='mso-yfti-irow:-1;mso-yfti-firstrow:yes'>
+ <td width=198 valign=top style='width:148.5pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-right:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:5'><b><span style='color:white;mso-themecolor:background1'>Command<o:p></o:p></span></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-left:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:1'><b><span style='color:white;mso-themecolor:background1'>Description<o:p></o:p></span></b></p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:0'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>open<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Open handle to SPB controller</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:1'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>close<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Close handle to SPB controller</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:2'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>lock<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Lock the bus for exclusive access</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:3'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>unlock<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Unlock the bus</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:4'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>lockconn<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Lock the shared connection for exclusive access.
+ This primitive is used to synchronize with op-region accesses by firmware.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:5'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>unlockconn<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Unlock the shared connection</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:6'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>write {}<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Write byte array to peripherl</p>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'><span style='mso-spacerun:yes'>� </span>&gt; write
+ {01, 02, 03}</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:7'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>read &lt;numBytes&gt;<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Read &lt;numBytes&gt; from peripheral</p>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'><span style='mso-spacerun:yes'>� </span>&gt; read 5</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:8'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>writeread {} &lt;numBytes&gt;<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Atomically write byte array to peripheral and read
+ &lt;numBytes&gt; back</p>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'><span style='mso-spacerun:yes'>� </span>&gt;
+ writeread {01, 02, 03} 5</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:9'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>fullduplex {} &lt;numBytes&gt;<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Simultaneously write byte array to peripheral and
+ read &lt;numBytes&gt; back</p>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'><span style='mso-spacerun:yes'>� </span>&gt; full
+ duplex {01, 02, 03} 5</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:10'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>signal<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Inform the SpbTestTool driver that the interrupt has
+ been handled</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:11'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>help<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Display the list of supported commands</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:12;mso-yfti-lastrow:yes'>
+ <td width=198 valign=top style='width:148.5pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>Ctrl-C<o:p></o:p></b></p>
+ </td>
+ <td width=440 valign=top style='width:330.3pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Press Ctrl-C at any time to cancel the outstanding
+ command and exit the application.</p>
+ </td>
+ </tr>
+</table>
+
+<h2>File Manifest</h2>
+
+<h3>Peripheral driver (spbtesttool.sys)</h3>
+
+<table class=MsoTableMediumShading1Accent1 border=1 cellspacing=0
+ cellpadding=0 style='border-collapse:collapse;border:none;mso-border-alt:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;mso-yfti-tbllook:1184;
+ mso-padding-alt:0in 5.4pt 0in 5.4pt'>
+ <tr style='mso-yfti-irow:-1;mso-yfti-firstrow:yes'>
+ <td width=197 valign=top style='width:148.1pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-right:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:5'><b><span style='color:white;mso-themecolor:background1'>File<o:p></o:p></span></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-left:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:1'><b><span style='color:white;mso-themecolor:background1'>Description<o:p></o:p></span></b></p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:0'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>driver.h, driver.cpp<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>DriverEntry and Events on the Driver Object.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:1'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>device.h, device.cpp<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Events on the Device Object, and read, write, and
+ IOCTLs from the SpbTestTool application. Implements the driver�s interrupt
+ service routine.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:2'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>internal.h<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Common includes and typedefs</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:3'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>makefile<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Redirects to the real makefile that is shared<span
+ style='mso-spacerun:yes'>� </span>by all components of the WDK </p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:4'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>makefile.inc<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Defines custom build actions.<span
+ style='mso-spacerun:yes'>� </span>Includes the conversion of the .INX file
+ into a .INF file</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:5'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>peripheral.h, peripheral.cpp<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Reflection of the SpbTestTool IOCTLs to the SPB
+ API, including opening the controller via the resource hub and using lock,
+ unlock, read, write, and sequence</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:6'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>resource.rc<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Resource descriptor file used for versioning</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:7'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>sources<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Lists source files and build options</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:8'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>sources.dep<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Defines build dependencies</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:9'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>spbtesttool.asl<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Sample ASL file for a peripheral device node. It declares
+ I2C and GPIO interrupt resources. Note each macro specifies an ACPI path to
+ describe direct dependencies.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:10'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>spbtesttool.h<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Private SpbTestTool IOCTLs for use between the
+ application and peripheral driver, and driver path names</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:11'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>spbtesttool.inx<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Describes the installation of the driver.<span
+ style='mso-spacerun:yes'>� </span>The build process converts this into a .INF</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:12;mso-yfti-lastrow:yes'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>trace.h<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Sets up WPP tracing</p>
+ </td>
+ </tr>
+</table>
+
+<h3>Application (spbtesttool.exe)</h3>
+
+<table class=MsoTableMediumShading1Accent1 border=1 cellspacing=0
+ cellpadding=0 style='margin-left:-.4pt;border-collapse:collapse;border:none;
+ mso-border-alt:solid #7BA0CD 1.0pt;mso-border-themecolor:accent1;mso-border-themetint:
+ 191;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
+ <tr style='mso-yfti-irow:-1;mso-yfti-firstrow:yes'>
+ <td width=197 valign=top style='width:148.1pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-right:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:5'><b><span style='color:white;mso-themecolor:background1'>File<o:p></o:p></span></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border:solid #7BA0CD 1.0pt;
+ mso-border-themecolor:accent1;mso-border-themetint:191;border-left:none;
+ background:#4F81BD;mso-background-themecolor:accent1;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;line-height:normal;
+ mso-yfti-cnfc:1'><b><span style='color:white;mso-themecolor:background1'>Description<o:p></o:p></span></b></p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:0'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>command.h, command.cpp<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Classes respresenting each of the SpbTestTool
+ commands.<span style='mso-spacerun:yes'>� </span>See <a
+ href="#_Executing_commands">Executing commands</a> above</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:1'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>internal.h<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Common includes and function definitions</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:2'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>main.cpp<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Application entry point, input parsing, and main
+ execution loop. Also contains the interrupt notification thread.</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:3'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>makefile<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Redirects to the real makefile that is shared by
+ all components of the WDK</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:4'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:68'><b>sources<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;background:
+ #D3DFEE;mso-background-themecolor:accent1;mso-background-themetint:63;
+ padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:64'>Lists source files and build options</p>
+ </td>
+ </tr>
+ <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'>
+ <td width=197 valign=top style='width:148.1pt;border-top:none;border-left:
+ solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:
+ 191;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:none;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:132'><b>util.cpp<o:p></o:p></b></p>
+ </td>
+ <td width=439 valign=top style='width:328.9pt;border-top:none;border-left:
+ none;border-bottom:solid #7BA0CD 1.0pt;mso-border-bottom-themecolor:accent1;
+ mso-border-bottom-themetint:191;border-right:solid #7BA0CD 1.0pt;mso-border-right-themecolor:
+ accent1;mso-border-right-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;
+ mso-border-top-themecolor:accent1;mso-border-top-themetint:191;padding:0in 5.4pt 0in 5.4pt'>
+ <p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
+ normal;mso-yfti-cnfc:128'>Helper functions</p>
+ </td>
+ </tr>
+</table>
+
+<p class=MsoNormal><o:p>&nbsp;</o:p></p>
+
+<p class=MsoNormal>Copyright � Microsoft Corporation.<span
+style='mso-spacerun:yes'>� </span>All Rights Reserved.</p>
+
+</div>
+
+</body>
+
+</html>