diff options
| author | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
|---|---|---|
| committer | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
| commit | 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch) | |
| tree | ad5f3ede5cbcd6b598677ce41bcf8318471bdd92 /SPB/SpbTestTool/SpbTestTool.htm | |
| parent | 687b274aa38fd05c8c26e3068932121876d7f745 (diff) | |
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'SPB/SpbTestTool/SpbTestTool.htm')
| -rw-r--r-- | SPB/SpbTestTool/SpbTestTool.htm | 2688 |
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="--"/> + <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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>devcon.exe +update SpbTestTool.inf ACPI\<hwid></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> </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> </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"'> +</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"'> +</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"'> +</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"'> +</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"'> +</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>SpbTestTool.exe +/p \\.\<alternate_path></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"'> +</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"'> +</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>SpbTestTool.exe +/i <script.txt></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>> 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 <numBytes><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 <numBytes> 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>> 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 {} <numBytes><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 + <numBytes> 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>> + 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 {} <numBytes><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 <numBytes> 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>> 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> </o:p></p> + +<p class=MsoNormal>Copyright � Microsoft Corporation.<span +style='mso-spacerun:yes'>� </span>All Rights Reserved.</p> + +</div> + +</body> + +</html> |
