Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2624 lines
92 KiB

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="halmca_files/filelist.xml">
<title>P6 MCA Architecture in Windows NT 3.51 HAL</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Anil Aggarwal</o:Author>
<o:Template>THESIS1.DOT</o:Template>
<o:LastAuthor>Danny Smith</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>12</o:TotalTime>
<o:LastPrinted>1995-09-14T00:41:00Z</o:LastPrinted>
<o:Created>2001-05-02T15:22:00Z</o:Created>
<o:LastSaved>2001-05-02T15:22:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>1736</o:Words>
<o:Characters>9897</o:Characters>
<o:Company>Intel Corp</o:Company>
<o:Bytes>47616</o:Bytes>
<o:Lines>82</o:Lines>
<o:Paragraphs>23</o:Paragraphs>
<o:CharactersWithSpaces>11610</o:CharactersWithSpaces>
<o:Version>10.2625</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:TrackRevisions/>
<w:DoNotShowRevisions/>
<w:DoNotPrintRevisions/>
<w:DoNotShowMarkup/>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
<w:UseMarginsForDrawingGridOrigin/>
<w:Compatibility>
<w:UsePrinterMetrics/>
<w:WW6BorderRules/>
<w:FootnoteLayoutLikeWW8/>
<w:ShapeLayoutLikeWW8/>
<w:AlignTablesRowByRow/>
<w:ForgetLastTabAlignment/>
<w:LayoutRawTableWidth/>
<w:LayoutTableRowsApart/>
<w:UseWord97LineBreakingRules/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 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:553679495 -2147483648 8 0 66047 0;}
@font-face
{font-family:LinePrinter;
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:3 0 0 0 1 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
h1
{mso-style-next:"Body Text";
margin-top:12.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
font-size:18.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:normal;}
h2
{mso-style-next:"Body Text";
margin-top:8.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:2;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
h3
{mso-style-next:"Body Text";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:3;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:normal;}
h4
{mso-style-next:"Body Text";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:4;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
h5
{mso-style-next:"Body Text";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:5;
font-size:10.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:normal;}
h6
{mso-style-next:"Body Text";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:6;
font-size:10.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{mso-style-next:"Body Text";
margin-top:4.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:7;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{mso-style-next:"Body Text";
margin-top:4.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:8;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{mso-style-next:"Body Text";
margin-top:4.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:9;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.75in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.0in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.25in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.5in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.25in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.5in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.75in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:2.0in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{mso-style-noshow:yes;
margin-top:9.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.25in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.75in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.25in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.5in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.75in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:2.0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
{mso-style-noshow:yes;
mso-style-parent:"Footnote Base";
margin-top:0in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:9.35pt;
text-indent:-9.35pt;
line-height:11.0pt;
mso-line-height-rule:exactly;
mso-pagination:widow-orphan;
tab-stops:9.35pt;
font-size:9.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:9.35pt;
text-indent:-9.35pt;
line-height:11.0pt;
mso-line-height-rule:exactly;
mso-pagination:widow-orphan;
tab-stops:9.35pt;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-noshow:yes;
mso-style-next:"Index 1";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{mso-style-noshow:yes;
mso-style-next:"Body Text";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
font-size:9.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-style:italic;
mso-bidi-font-style:normal;}
p.MsoTof, li.MsoTof, div.MsoTof
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
span.MsoFootnoteReference
{mso-style-noshow:yes;
mso-style-parent:"";
vertical-align:super;}
span.MsoCommentReference
{mso-style-noshow:yes;
mso-style-parent:"";
mso-ansi-font-size:8.0pt;}
span.MsoLineNumber
{mso-style-parent:"";
mso-ansi-font-size:9.0pt;
font-family:Arial;
mso-ascii-font-family:Arial;
mso-hansi-font-family:Arial;}
span.MsoPageNumber
{mso-style-parent:"";
font-weight:bold;
mso-bidi-font-weight:normal;}
span.MsoEndnoteReference
{mso-style-noshow:yes;
mso-style-parent:"";
vertical-align:super;}
p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:9.35pt;
text-indent:-9.35pt;
line-height:11.0pt;
mso-line-height-rule:exactly;
mso-pagination:widow-orphan;
tab-stops:9.35pt;
font-size:9.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToa, li.MsoToa, div.MsoToa
{mso-style-noshow:yes;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.25in;
margin-bottom:.0001pt;
text-indent:-.25in;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoMacroText, li.MsoMacroText, div.MsoMacroText
{mso-style-noshow:yes;
mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Courier New";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
p.MsoToaHeading, li.MsoToaHeading, div.MsoToaHeading
{mso-style-noshow:yes;
mso-style-parent:"Section Heading";
mso-style-next:"Table of Authorities";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.25in;
text-indent:-.25in;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoList, li.MsoList, div.MsoList
{mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:.5in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListNumber, li.MsoListNumber, div.MsoListNumber
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoList2, li.MsoList2, div.MsoList2
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:.75in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoList3, li.MsoList3, div.MsoList3
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:1.0in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:1.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoList4, li.MsoList4, div.MsoList4
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:1.25in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:1.25in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoList5, li.MsoList5, div.MsoList5
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:1.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:1.5in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListBullet2, li.MsoListBullet2, div.MsoListBullet2
{mso-style-parent:"List Bullet";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.75in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListBullet3, li.MsoListBullet3, div.MsoListBullet3
{mso-style-parent:"List Bullet";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.0in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListBullet4, li.MsoListBullet4, div.MsoListBullet4
{mso-style-parent:"List Bullet";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.25in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListBullet5, li.MsoListBullet5, div.MsoListBullet5
{mso-style-parent:"List Bullet";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListNumber2, li.MsoListNumber2, div.MsoListNumber2
{mso-style-parent:"List Number";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.75in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListNumber3, li.MsoListNumber3, div.MsoListNumber3
{mso-style-parent:"List Number";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.0in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListNumber4, li.MsoListNumber4, div.MsoListNumber4
{mso-style-parent:"List Number";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.25in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListNumber5, li.MsoListNumber5, div.MsoListNumber5
{mso-style-parent:"List Number";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{mso-style-parent:"Heading Base";
mso-style-next:Subtitle;
margin-top:.25in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:20.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
{mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListContinue, li.MsoListContinue, div.MsoListContinue
{mso-style-parent:List;
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListContinue2, li.MsoListContinue2, div.MsoListContinue2
{mso-style-parent:"List Continue";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.75in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListContinue3, li.MsoListContinue3, div.MsoListContinue3
{mso-style-parent:"List Continue";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.0in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListContinue4, li.MsoListContinue4, div.MsoListContinue4
{mso-style-parent:"List Continue";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.25in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoListContinue5, li.MsoListContinue5, div.MsoListContinue5
{mso-style-parent:"List Continue";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:1.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
{mso-style-parent:Title;
mso-style-next:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-style:italic;
mso-bidi-font-style:normal;}
p.MsoDate, li.MsoDate, div.MsoDate
{mso-style-parent:"Body Text";
margin-top:48.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
text-align:center;
line-height:200%;
mso-pagination:widow-orphan;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;
mso-bidi-font-weight:normal;}
p.MsoBodyTextIndent2, li.MsoBodyTextIndent2, div.MsoBodyTextIndent2
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:1.0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;
text-underline:single;}
em
{mso-style-parent:"";
mso-bidi-font-style:normal;}
p.AttentionLine, li.AttentionLine, div.AttentionLine
{mso-style-name:"Attention Line";
mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
p.Author, li.Author, div.Author
{mso-style-name:Author;
mso-style-parent:"Body Text";
margin-top:48.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
text-align:center;
line-height:200%;
mso-pagination:widow-orphan;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;
mso-bidi-font-weight:normal;}
p.BlockQuotation, li.BlockQuotation, div.BlockQuotation
{mso-style-name:"Block Quotation";
mso-style-parent:"Body Text";
margin-top:0in;
margin-right:.5in;
margin-bottom:8.0pt;
margin-left:.5in;
line-height:200%;
mso-pagination:widow-orphan lines-together;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-style:italic;
mso-bidi-font-style:normal;}
p.BlockQuotationFirst, li.BlockQuotationFirst, div.BlockQuotationFirst
{mso-style-name:"Block Quotation First";
mso-style-parent:"Block Quotation";
mso-style-next:"Block Quotation";
margin-top:6.0pt;
margin-right:.5in;
margin-bottom:8.0pt;
margin-left:.5in;
line-height:200%;
mso-pagination:widow-orphan lines-together;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-style:italic;
mso-bidi-font-style:normal;}
p.BlockQuotationLast, li.BlockQuotationLast, div.BlockQuotationLast
{mso-style-name:"Block Quotation Last";
mso-style-parent:"Block Quotation";
mso-style-next:"Body Text";
margin-top:0in;
margin-right:.5in;
margin-bottom:12.0pt;
margin-left:.5in;
line-height:200%;
mso-pagination:widow-orphan lines-together;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-style:italic;
mso-bidi-font-style:normal;}
p.BodyTextKeep, li.BodyTextKeep, div.BodyTextKeep
{mso-style-name:"Body Text Keep";
mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
line-height:200%;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.ChapterLabel, li.ChapterLabel, div.ChapterLabel
{mso-style-name:"Chapter Label";
mso-style-next:Normal;
margin-top:.25in;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;
text-decoration:underline;
text-underline:single;}
p.ChapterSubtitle, li.ChapterSubtitle, div.ChapterSubtitle
{mso-style-name:"Chapter Subtitle";
mso-style-next:"Body Text";
margin-top:.25in;
margin-right:0in;
margin-bottom:.25in;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-style:italic;
mso-bidi-font-style:normal;}
p.ChapterTitle, li.ChapterTitle, div.ChapterTitle
{mso-style-name:"Chapter Title";
mso-style-next:"Chapter Subtitle";
margin-top:30.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:16.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.DocumentLabel, li.DocumentLabel, div.DocumentLabel
{mso-style-name:"Document Label";
margin-top:12.0pt;
margin-right:0in;
margin-bottom:.25in;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:18.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.FooterEven, li.FooterEven, div.FooterEven
{mso-style-name:"Footer Even";
mso-style-parent:Footer;
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.FooterFirst, li.FooterFirst, div.FooterFirst
{mso-style-name:"Footer First";
mso-style-parent:Footer;
margin:0in;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.FooterOdd, li.FooterOdd, div.FooterOdd
{mso-style-name:"Footer Odd";
mso-style-parent:Footer;
margin:0in;
margin-bottom:.0001pt;
text-align:right;
mso-pagination:widow-orphan lines-together;
tab-stops:right 0in center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.FootnoteBase, li.FootnoteBase, div.FootnoteBase
{mso-style-name:"Footnote Base";
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:9.35pt;
margin-bottom:.0001pt;
text-indent:-9.35pt;
line-height:11.0pt;
mso-line-height-rule:exactly;
mso-pagination:widow-orphan;
tab-stops:9.35pt;
font-size:9.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.GlossaryDefinition, li.GlossaryDefinition, div.GlossaryDefinition
{mso-style-name:"Glossary Definition";
mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:27.35pt;
text-indent:-27.35pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
span.GlossaryEntry
{mso-style-name:"Glossary Entry";
mso-style-parent:"";
font-weight:bold;
mso-bidi-font-weight:normal;}
p.HeaderBase, li.HeaderBase, div.HeaderBase
{mso-style-name:"Header Base";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.HeaderEven, li.HeaderEven, div.HeaderEven
{mso-style-name:"Header Even";
mso-style-parent:Header;
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.HeaderFirst, li.HeaderFirst, div.HeaderFirst
{mso-style-name:"Header First";
mso-style-parent:Header;
margin:0in;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan lines-together;
tab-stops:center 3.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.HeaderOdd, li.HeaderOdd, div.HeaderOdd
{mso-style-name:"Header Odd";
mso-style-parent:Header;
margin:0in;
margin-bottom:.0001pt;
text-align:right;
mso-pagination:widow-orphan lines-together;
tab-stops:right 0in center 3.0in right 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.HeadingBase, li.HeadingBase, div.HeadingBase
{mso-style-name:"Heading Base";
mso-style-next:"Body Text";
margin-top:12.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:18.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.IndexBase, li.IndexBase, div.IndexBase
{mso-style-name:"Index Base";
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
text-indent:-.5in;
mso-pagination:widow-orphan;
tab-stops:right dotted 2.75in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
span.Lead-inEmphasis
{mso-style-name:"Lead-in Emphasis";
mso-style-parent:"";
font-weight:bold;
mso-bidi-font-weight:normal;
font-style:italic;
mso-bidi-font-style:normal;}
p.ListBulletFirst, li.ListBulletFirst, div.ListBulletFirst
{mso-style-name:"List Bullet First";
mso-style-parent:"List Bullet";
mso-style-next:"List Bullet";
margin-top:4.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.ListBulletLast, li.ListBulletLast, div.ListBulletLast
{mso-style-name:"List Bullet Last";
mso-style-parent:"List Bullet";
mso-style-next:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.ListFirst, li.ListFirst, div.ListFirst
{mso-style-name:"List First";
mso-style-parent:List;
mso-style-next:List;
margin-top:4.0pt;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:.5in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.ListLast, li.ListLast, div.ListLast
{mso-style-name:"List Last";
mso-style-parent:List;
mso-style-next:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
tab-stops:.5in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.ListNumberFirst, li.ListNumberFirst, div.ListNumberFirst
{mso-style-name:"List Number First";
mso-style-parent:"List Number";
mso-style-next:"List Number";
margin-top:4.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.ListNumberLast, li.ListNumberLast, div.ListNumberLast
{mso-style-name:"List Number Last";
mso-style-parent:"List Number";
mso-style-next:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:.5in;
text-indent:-.25in;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.Name, li.Name, div.Name
{mso-style-name:Name;
mso-style-parent:"Body Text";
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
text-align:center;
line-height:200%;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.PartLabel, li.PartLabel, div.PartLabel
{mso-style-name:"Part Label";
mso-style-parent:"Heading Base";
mso-style-next:Normal;
margin-top:30.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
text-decoration:underline;
text-underline:single;}
p.PartSubtitle, li.PartSubtitle, div.PartSubtitle
{mso-style-name:"Part Subtitle";
mso-style-next:"Body Text";
margin-top:.25in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:16.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-style:italic;
mso-bidi-font-style:normal;}
p.PartTitle, li.PartTitle, div.PartTitle
{mso-style-name:"Part Title";
mso-style-parent:"Heading Base";
mso-style-next:"Part Subtitle";
margin-top:30.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:18.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.Picture, li.Picture, div.Picture
{mso-style-name:Picture;
mso-style-parent:"Body Text";
mso-style-next:Caption;
margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.SectionHeading, li.SectionHeading, div.SectionHeading
{mso-style-name:"Section Heading";
mso-style-parent:"Heading Base";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:.25in;
text-indent:-.25in;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:14.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.SectionLabel, li.SectionLabel, div.SectionLabel
{mso-style-name:"Section Label";
mso-style-parent:"Heading Base";
mso-style-next:"Body Text";
margin-top:12.0pt;
margin-right:0in;
margin-bottom:.25in;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:18.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.SubtitleCover, li.SubtitleCover, div.SubtitleCover
{mso-style-name:"Subtitle Cover";
mso-style-next:"Body Text";
margin-top:12.0pt;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:18.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-style:italic;
mso-bidi-font-style:normal;}
span.Superscript
{mso-style-name:Superscript;
mso-style-parent:"";
vertical-align:super;}
p.TitleCover, li.TitleCover, div.TitleCover
{mso-style-name:"Title Cover";
mso-style-parent:"Heading Base";
mso-style-next:"Subtitle Cover";
margin-top:.5in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
text-align:center;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
font-size:24.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";
mso-font-kerning:14.0pt;
font-weight:bold;
mso-bidi-font-weight:normal;}
p.TOCBase, li.TOCBase, div.TOCBase
{mso-style-name:"TOC Base";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:right dotted 6.0in;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.t, li.t, div.t
{mso-style-name:t;
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.Bulletlist, li.Bulletlist, div.Bulletlist
{mso-style-name:"Bullet list";
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.25in;
margin-bottom:.0001pt;
text-indent:-.25in;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.typ, li.typ, div.typ
{mso-style-name:typ;
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.TYPEWRITER, li.TYPEWRITER, div.TYPEWRITER
{mso-style-name:TYPEWRITER;
mso-style-parent:t;
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
mso-bidi-font-size:10.0pt;
font-family:LinePrinter;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";}
p.d, li.d, div.d
{mso-style-name:d;
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.IAHeaders, li.IAHeaders, div.IAHeaders
{mso-style-name:"IA Headers";
margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;
mso-bidi-font-weight:normal;}
p.da, li.da, div.da
{mso-style-name:da;
mso-style-parent:d;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.4in;
margin-bottom:.0001pt;
text-indent:-.2in;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
ins
{mso-style-type:export-only;
text-decoration:none;}
span.msoIns
{mso-style-type:export-only;
mso-style-name:"";
text-decoration:underline;
text-underline:single;}
span.msoDel
{mso-style-type:export-only;
mso-style-name:"";
text-decoration:line-through;
color:red;}
span.SpellE
{mso-style-name:"";
mso-spl-e:yes;}
span.GramE
{mso-style-name:"";
mso-gram-e:yes;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-title-page:yes;
mso-even-footer:url("halmca_files/header.htm") ef1;
mso-footer:url("halmca_files/header.htm") f1;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:-2;
mso-list-type:simple;
mso-list-template-ids:-1;}
@list l0:level1
{mso-level-start-at:0;
mso-level-text:*;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:0in;
text-indent:0in;}
@list l1
{mso-list-id:105007401;
mso-list-type:simple;
mso-list-template-ids:347914688;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.25in;
text-indent:-.25in;}
@list l2
{mso-list-id:179390403;
mso-list-type:hybrid;
mso-list-template-ids:1980901778 -2083884546 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
{mso-level-start-at:3;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@list l3
{mso-list-id:435029030;
mso-list-type:simple;
mso-list-template-ids:347914688;}
@list l3:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.25in;
text-indent:-.25in;}
@list l4
{mso-list-id:541553492;
mso-list-type:hybrid;
mso-list-template-ids:-759428252 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l4:level1
{mso-level-start-at:2;
mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l5
{mso-list-id:1081293617;
mso-list-type:hybrid;
mso-list-template-ids:309764262 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l5:level1
{mso-level-start-at:2;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l6
{mso-list-id:1091392325;
mso-list-type:hybrid;
mso-list-template-ids:-1134926036 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l6:level1
{mso-level-start-at:2;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l7
{mso-list-id:1185441404;
mso-list-type:hybrid;
mso-list-template-ids:-365812246 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l7:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-.25in;
font-family:Symbol;}
@list l8
{mso-list-id:1296792661;
mso-list-type:hybrid;
mso-list-template-ids:1477884316 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l8:level1
{mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l9
{mso-list-id:1574196940;
mso-list-type:simple;
mso-list-template-ids:347914688;}
@list l9:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l10
{mso-list-id:1761372178;
mso-list-type:hybrid;
mso-list-template-ids:-447309088 1635694722 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l10:level1
{mso-level-tab-stop:.75in;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l10:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:1.25in;
mso-level-number-position:left;
margin-left:1.25in;
text-indent:-.25in;}
@list l11
{mso-list-id:2057196788;
mso-list-type:simple;
mso-list-template-ids:-1524463778;}
@list l11:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l0:level1 lfo1
{mso-level-start-at:1;
mso-level-number-format:bullet;
mso-level-numbering:continue;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.25in;
text-indent:-.25in;
font-family:Symbol;}
@list l11:level1 lfo3
{mso-level-numbering:continue;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l11:level1 lfo4
{mso-level-numbering:continue;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l11:level1 lfo5
{mso-level-numbering:continue;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l9:level1 lfo7
{mso-level-numbering:continue;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l9:level1 lfo8
{mso-level-numbering:continue;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
@list l9:level1 lfo9
{mso-level-numbering:continue;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-level-legacy:yes;
mso-level-legacy-indent:.25in;
mso-level-legacy-space:0in;
margin-left:.75in;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
<div class=Section1>
<p class=TitleCover>Intel Processors Machine Check Architectures in Microsoft
Windows<o:p></o:p></p>
<p class=SectionHeading style='margin-left:0in;text-indent:0in'><o:p>&nbsp;</o:p></p>
<p class=SectionHeading>1.<span style='mso-tab-count:1'>  </span>Introduction</p>
<p class=MsoNormal>Microsoft Windows generic Hardware Abstraction Layers (<span
class=SpellE>HALs</span>) for Intel Architectures (halx86, <span class=SpellE>halapic</span>,
<span class=SpellE>halmps</span>, halia64) support the Machine Check
Architectures (MCA) for the Intel Pentium® Pro and Itanium processors. The HAL
enables Machine Check Exception (MCE) reporting for all implementation defined
errors. <o:p></o:p></p>
<p class=SectionHeading style='margin-left:0in;text-indent:0in'>2. Intel
Pentium® Pro Processor Machine Check</p>
<p class=MsoNormal>The Machine Check Exception (MCE) is processor exception 18.
The handler for Machine Check Exception is implemented as a task gate for
maximum reliability of the exception handler.<span style='mso-spacerun:yes'> 
</span>The HAL provides a generic exception handler for all errors that cause
an exception.<span style='mso-spacerun:yes'>  </span>This handler reports the
machine check exception code on the screen and causes the operating system to
halt gracefully, reducing the possibility of persistent data corruption.</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>In addition, the HAL also provides MCA specific interface
that can be used by drivers to:</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Read the MCA banks to detect an error that does
not generate an exception. One case where an error does not generate <span
class=GramE>an <span style='mso-spacerun:yes'> </span>exception</span> is if the
bit controlling reporting of the machine check error for a specific bank (<span
class=SpellE>MCi_CTL.Eej</span>) bit is turned cleared. There are also some
restartable errors that don’t generate Machine Check Exception and are logged
in the MCA banks.</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Obtain control (to possibly log errors to NVRAM)
when the Machine Check exception handler is invoked by providing two callback
routines - ExceptionCallback and DpcCallback</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=SectionHeading style='margin-left:0in;text-indent:0in'>2.1<span
style='mso-tab-count:1'>    </span>Machine Check Exception Handling</p>
<p class=MsoNormal>If the MCA exception handler detects only Intel Pentium®
technology (style) MCE support on the platform, it does the following:</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>If a MCA driver is registered with the HAL, call
the MCA driver ExceptionCallback function providing the contents of P5_MC_ADDR
and P5_MC_TYPE register values. This callback routine can log the register
values in NVRAM and return.</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Call KeBugCheckEx() with the following 4
parameters to halt the system <o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l11 level1 lfo2;mso-list-change:"%1\:1\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Low<span style='mso-spacerun:yes'>  </span>32 bits of
P5_MC_TYPE MSR<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l11 level1 lfo3;mso-list-change:"%1\:2\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Always zero<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l11 level1 lfo4;mso-list-change:"%1\:3\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>High 32 bits of P5_MC_ADDR MSR<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l11 level1 lfo5;mso-list-change:"%1\:4\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Low 32 bits of P5_MC_ADDR MSR<o:p></o:p></p>
<span style='font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
mso-bidi-language:AR-SA'><br clear=all style='mso-special-character:line-break;
page-break-before:always'>
</span>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>If MCA support (Pentium Pro processor) on the platform is
detected, the exception handler determines if the error is restartable. If not,
it does the following:</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>call the MCA Driver ExceptionCallback routine to
give the MCA driver a chance to log the errors in NVRAM</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>call KeBugCheckEx() with the following 4
parameters to halt the system</p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l9 level1 lfo6;mso-list-change:"%1\:1\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>MCA Bank number that generated Machine Check exception<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l9 level1 lfo7;mso-list-change:"%1\:2\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Address field from <span class=SpellE>MCi_ADDR</span>
MSR for this MCA bank<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l9 level1 lfo8;mso-list-change:"%1\:3\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>High 32 bits of <span class=SpellE>MCi_STATUS</span>
MSR for this MCA bank<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l9 level1 lfo9;mso-list-change:"%1\:4\:0\:\." "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Low 32 bits of <span class=SpellE>MCi_STATUS</span> MSR
for this MCA bank<o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>If the error is restartable, the exception <span
class=GramE>handler <span style='mso-spacerun:yes'> </span>queues</span> a DPC
which when called <span style='mso-spacerun:yes'> </span>reports the MCA bank
error to the MCA Driver through the DpcCallback routine.<br style='mso-special-character:
line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]><o:p></o:p></p>
<p class=SectionHeading>3. Intel Itanium® Processor Machine Check<o:p></o:p></p>
<p class=MsoNormal>Machines checks, including Machine Check Aborts cause IA64 processor
execution to vector to the Processor Abstraction Layer (PAL) PALE_CHECK code in
the IA64 ISA. When PALE_CHECK has finished processing, it passes control to the
System Abstraction Layer (SAL) SAL_ENTRY code in the IA64 ISA, which in turn
branches to the SAL MCA handler: SAL_CHECK. <o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>Uncorrected machine checks refer to errors that cannot be
corrected at PAL or SAL layers. These may still be fully or partially
recoverable at the OS layer. <span style='mso-spacerun:yes'> </span>At that
time, the control flow differs between corrected and uncorrected machine
checks. <o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>For corrected machine checks, the OS corrected error
interrupt handlers will be invoked some time after returning to the interrupted
process. <o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>For uncorrected machine checks, SAL exposes an interface to
register an OS_MCA callback. After validating this entry point, SAL_CHECK branches
to it and provides an Error Record that will allow the OS to recover whenever
possible. The Error Record passed by SAL must comply, at a minimum, with the
V3.0 SAL specification (January 2001), Appendix B, “Error Record Structures”.
The HAL exposes interfaces for the OEMs to register a driver, and provides the
Error Record to the driver. This enables the OEMs to assist the generic HAL MCA
handler by attempting recovery of platform specific errors and maintaining the integrity
of the platform. <o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>For IA64 PAL, SAL and OS MCA handler’s details, please refer
to<o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.0in;text-indent:-1.0in;mso-text-indent-alt:
-.25in;mso-list:l7 level1 lfo17;mso-list-change:\F0B7 "Danny Smith" 20010502T0820;
tab-stops:list 1.0in'><![if !supportLists]><span style='font-family:Symbol;
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='mso-spacerun:yes'> </span><a
href="http://www.intel.com/design/ia-64/manuals">http://www.intel.com/design/ia-64/manuals</a>.<o:p></o:p></p>
<p class=MsoNormal><span style='mso-tab-count:1'>                </span><o:p></o:p></p>
<p class=MsoNormal>The IA64 Reference HAL provides an MCA specific interface
that can be used by drivers to:<o:p></o:p></p>
<p class=t><o:p>&nbsp;</o:p></p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Register for delivery of an <span class=SpellE>ExceptionCallback</span>
during non-corrected error processing. This callback returns an error severity
value to the standard HAL OS_MCA, allowing OEM error recovery. The driver also
registers a <span class=SpellE>DpcCallback</span>, which will be performed should
the driver recover during <span class=SpellE>ExceptionCallback</span>
processing.<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Register for delivery of two additional <span
class=SpellE>DpcCallback</span>. These are delivered during corrected error
processing for CPU Corrected errors and/or Platform corrected errors.<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Read the Error Records during <span
class=SpellE>DpcCallback</span> processing.<o:p></o:p></p>
<p class=MsoNormal><i><u><span style='color:blue'><o:p><span style='text-decoration:
none'>&nbsp;</span></o:p></span></u></i></p>
<b style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt;
mso-bidi-font-size:10.0pt;font-family:Arial;mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Times New Roman";mso-font-kerning:14.0pt;mso-ansi-language:
EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br clear=all
style='page-break-before:always'>
</span></b>
<p class=SectionHeading style='margin-left:0in;text-indent:0in'>3.1<span
style='mso-tab-count:1'>    </span>Machine Check Exception Handling<o:p></o:p></p>
<p class=MsoNormal>After collecting the MCA log, the standard HAL MCA handler calls
the MCA driver <span class=SpellE>ExceptionCallback</span> function providing
the MCA record. This allows the MCA driver to process the log and makes
appropriate consideration with regards to the stability of the system. This
callback function returns an error severity value to let the HAL know if it
should consider the event as fatal, recoverable or corrected by the MCA driver.
<span class=GramE>In case of a corrected event and if registered, the MCA
driver <span class=SpellE>DpcCallback</span> is then called for asynchronous
log collection by the driver.</span><o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal>In case of an OS_MCA uncorrected event, the HAL calls <span
class=SpellE><span class=GramE>KeBugCheckEx</span></span><span class=GramE>(</span>
) with the <span class=SpellE>bugcheck</span> code MACHINE_CHECK_EXCEPTION and
the following 4 parameters to halt the system<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l10 level1 lfo18;mso-list-change:"%1\:1\:0\:\." "Danny Smith" 20010502T0820;
tab-stops:list .75in'><![if !supportLists]><span style='mso-list:Ignore'>1.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>HAL IA64 MCA type, which values could be: <o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.25in;text-indent:-1.25in;mso-text-indent-alt:
-.25in;mso-list:l10 level2 lfo18;mso-list-change:"%2\:1\:4\:\." "Danny Smith" 20010502T0820;
tab-stops:list 1.25in'><![if !supportLists]><span style='mso-list:Ignore'>a.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>HAL_BUGCHECK_MCA_ASSERT = 1,<o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.25in;text-indent:-1.25in;mso-text-indent-alt:
-.25in;mso-list:l10 level2 lfo18;mso-list-change:"%2\:2\:4\:\." "Danny Smith" 20010502T0820;
tab-stops:list 1.25in'><![if !supportLists]><span style='mso-list:Ignore'>b.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>HAL_BUGCHECK_MCA_GET_STATEINFO<span
style='mso-spacerun:yes'>  </span>= 2,<o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.25in;text-indent:-1.25in;mso-text-indent-alt:
-.25in;mso-list:l10 level2 lfo18;mso-list-change:"%2\:3\:4\:\." "Danny Smith" 20010502T0820;
tab-stops:list 1.25in'><![if !supportLists]><span style='mso-list:Ignore'>c.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>HAL_BUGCHECK_MCA_CLEAR_STATEINFO = 3,<o:p></o:p></p>
<p class=MsoNormal style='margin-left:1.25in;text-indent:-1.25in;mso-text-indent-alt:
-.25in;mso-list:l10 level2 lfo18;mso-list-change:"%2\:4\:4\:\." "Danny Smith" 20010502T0820;
tab-stops:list 1.25in'><![if !supportLists]><span style='mso-list:Ignore'>d.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>HAL_BUGCHECK_MCA_FATAL
= 4. <o:p></o:p></p>
<p class=MsoBodyTextIndent2>This last value should be the expected one for the
MCA driver, the other values being HAL internal error values.<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l10 level1 lfo18;mso-list-change:"%1\:2\:0\:\." "Danny Smith" 20010502T0820;
tab-stops:list .75in'><![if !supportLists]><span style='mso-list:Ignore'>2.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>MCA log address<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l10 level1 lfo18;mso-list-change:"%1\:3\:0\:\." "Danny Smith" 20010502T0820;
tab-stops:list .75in'><![if !supportLists]><span style='mso-list:Ignore'>3.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>MCA maximum log size<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.75in;text-indent:-.75in;mso-text-indent-alt:
-.25in;mso-list:l10 level1 lfo18;mso-list-change:"%1\:4\:0\:\." "Danny Smith" 20010502T0820;
tab-stops:list .75in'><![if !supportLists]><span style='mso-list:Ignore'>4.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>SAL status of the last SAL interface.<o:p></o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=SectionHeading>4.<span style='mso-tab-count:1'>  </span>MCA INTERFACE
FOR DRIVERS</p>
<p class=MsoNormal>The Intel generic <span class=SpellE>HALs</span> <span
class=GramE>provide</span> the following Intel Pentium® Pro and Itanium
technology MCA specific interface for drivers:</p>
<p class=Bulletlist style='text-indent:-.25in;mso-text-indent-alt:-.25in;
mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>HalSetSystemInformation with the HAL_QUERY_INFORMATION_CLASS
parameter set <span class=GramE>to <span
style='mso-spacerun:yes'> </span>HalMcaRegisterDriver</span>. This allows a
driver to register MCA callbacks with the HAL. Additionally the Itanium driver
may use a HAL_QUERY_INFORMATION_CLASS parameter set to <span class=SpellE>HalCmcRegisterDriver</span>
or <span class=SpellE>HalCpeRegisterDriver</span> for delivery of Corrected CPU
errors (CMC) and Corrected Platform Errors (CPE).</p>
<p class=Bulletlist style='text-indent:-.25in;mso-text-indent-alt:-.25in;
mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span class=SpellE>HalQuerySystemInformation</span>
with the HAL_QUERY_INFORMATION_CLASS parameter set to HalMcaLogInformation. This
allows a driver to read the MCA log. Additionally the Itanium driver may use a
HAL_QUERY_INFORMATION_CLASS parameter set to <span class=SpellE>HalCmcLogInformation</span>
or <span class=SpellE>HalCpeLogInformation</span> to read MCA logs from
Corrected CPU errors (CMC) and/or Corrected Platform Errors (CPE).</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=SectionHeading>4.1<span style='mso-tab-count:1'>    </span><span
class=SpellE>HalSetSystemInformation</span> <span style='font-weight:normal'>to
register MCA Driver</span></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>NTSTATUS</b> </p>
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'>HalSetSystemInformation(</b></span></p>
<p class=MsoNormal><span style='mso-tab-count:2'>                                </span><b
style='mso-bidi-font-weight:normal'>IN HAL_QUERY_INFORMATION_CLASS<span
style='mso-tab-count:1'> </span></b>InformationClass,</p>
<p class=MsoNormal><span style='mso-tab-count:2'>                                </span><b
style='mso-bidi-font-weight:normal'>IN <span class=GramE>ULONG<span
style='font-weight:normal'><span style='mso-spacerun:yes'>  </span>BufferSize</span></span></b>,</p>
<p class=MsoNormal><span style='mso-tab-count:1'>                </span><span
style='mso-tab-count:1'>                </span><b style='mso-bidi-font-weight:
normal'>OUT <span class=GramE>PVOID<span style='font-weight:normal'><span
style='mso-spacerun:yes'>  </span>Buffer</span></span></b>,</p>
<p class=MsoNormal><span style='mso-tab-count:1'>                </span>);</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>HalSetSystemInformation</b>
can be used to register MCA driver with the HAL</p>
<b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;
font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='page-break-before:always'>
</span></b>
<p class=IAHeaders>Parameters<i style='mso-bidi-font-style:normal'><o:p></o:p></i></p>
<p class=da><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight:
normal'>InformationClass</b></span></span><span class=GramE><b
style='mso-bidi-font-weight:normal'> :</b></span><b style='mso-bidi-font-weight:
normal'> </b>Specify<i style='mso-bidi-font-style:normal'> </i><b
style='mso-bidi-font-weight:normal'>HalMcaRegisterDriver </b>to register MCA
driver’s callback routines with the HAL. There are two callback routines-
ExceptionCallback and <span class=SpellE>DpcCallback</span>. The <span
class=SpellE>ExceptionCallback</span> Routine is called during the Machine
Check Exception handler non-<span class=SpellE>restartable</span> error <span
class=GramE>processing ,</span> before it <span class=SpellE>bugchecks</span>
the system. The DpcCallback routine is called when the MCA error is restartable.
For Itanium systems, specify <span class=SpellE><b style='mso-bidi-font-weight:
normal'>HalCmcRegisterDriver</b></span><b style='mso-bidi-font-weight:normal'> </b>to
register a driver’s Corrected CPU Error <span class=SpellE>DpcCallback</span>
routine, and <span class=SpellE><b style='mso-bidi-font-weight:normal'>HalCpeRegisterDriver</b></span><b
style='mso-bidi-font-weight:normal'> </b>to register a driver’s Corrected
Platform Error <span class=SpellE>DpcCallback</span>. </p>
<p class=da><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight:
normal'>BufferSize</b></span></span><span class=GramE> :</span> Specifies the
size in bytes of the buffer supplied by the caller.</p>
<p class=da><span class=GramE><b style='mso-bidi-font-weight:normal'>Buffer :</b></span><b
style='mso-bidi-font-weight:normal'> </b>Pointer to a caller-supplied buffer of
type <i style='mso-bidi-font-style:normal'>MCA_DRIVER_INFO</i></p>
<p class=da><i style='mso-bidi-font-style:normal'>//<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'>// Structure to record the
callbacks from driver<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'>//<o:p></o:p></i></p>
<p class=da><span class=GramE><i style='mso-bidi-font-style:normal'>typedef</i></span><i
style='mso-bidi-font-style:normal'> struct _MCA_DRIVER_INFO {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span
style='mso-spacerun:yes'>    </span>PDRIVER_EXCPTN_CALLBACK <span class=SpellE>ExceptionCallback</span><span
class=GramE>;<span style='mso-spacerun:yes'>  </span>-</span> <span
style='mso-spacerun:yes'> </span></i><i style='mso-bidi-font-style:normal'><span
style='font-size:8.0pt;mso-bidi-font-size:10.0pt'>NULL for Itanium corrected
error registration<o:p></o:p></span></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span
style='mso-spacerun:yes'>    </span>PKDEFERRED_ROUTINE<span
style='mso-spacerun:yes'>      </span>DpcCallback;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span
style='mso-spacerun:yes'>    </span>PVOID<span
style='mso-spacerun:yes'>                   </span>DeviceContext;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'>} MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;<o:p></o:p></i></p>
<p class=da><b style='mso-bidi-font-weight:normal'><o:p>&nbsp;</o:p></b></p>
<p class=da><b style='mso-bidi-font-weight:normal'>ExceptionCallback </b>is the
driver-supplied routine to be called when Machine Check Exception occurs for
non-restartable errors. <i style='mso-bidi-font-style:normal'>A driver
explicitly may not utilize any kernel services or <span class=SpellE>spinlock</span>
routines.<span style='mso-spacerun:yes'>  </span>The handler is restricted to
the same constraints as a driver operating at highest IRQL.</i></p>
<p class=da><b style='mso-bidi-font-weight:normal'>DpcCallback </b>is a driver-supplied
routine that is called for restartable errors that caused Machine Check
Exception. This routine will be called at DISPATCH_LEVEL.<o:p></o:p></p>
<p class=da><span class=SpellE><b style='mso-bidi-font-weight:normal'>DeviceContext</b></span>
is the Device specific context for this MCA Driver.<o:p></o:p></p>
<p class=da style='margin-left:0in;text-indent:0in'><b style='mso-bidi-font-weight:
normal'><o:p>&nbsp;</o:p></b></p>
<p class=IAHeaders>Include<i style='mso-bidi-font-style:normal'><o:p></o:p></i></p>
<p class=da style='margin-left:0in;text-indent:0in'><span class=SpellE>ntddk.h</span></p>
<p class=IAHeaders>Return Value</p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>HalSetSystemInformation</b>
returns STATUS_SUCCESS if the registration is successful.</p>
<p class=IAHeaders>Comments</p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>HalSetSystemInformation</b>
must be called before a MCA driver can use any of the other interface routines.
Only one MCA driver can be registered with the HAL at any time.<b
style='mso-bidi-font-weight:normal'><o:p></o:p></b></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><o:p>&nbsp;</o:p></b></p>
<p class=SectionHeading>4.2<span style='mso-tab-count:1'>    </span><span
class=SpellE>HalQuerySystemInformation</span> <span style='font-weight:normal'>to
get MCA logs</span></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>NTSTATUS</b> </p>
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'>HalQuerySystemInformation(</b></span></p>
<p class=MsoNormal><span style='mso-tab-count:2'>                                </span><b
style='mso-bidi-font-weight:normal'>IN HAL_QUERY_INFORMATION_CLASS<span
style='mso-tab-count:1'> </span></b>InformationClass,</p>
<p class=MsoNormal><span style='mso-tab-count:2'>                                </span><b
style='mso-bidi-font-weight:normal'>IN <span class=GramE>ULONG<span
style='font-weight:normal'><span style='mso-spacerun:yes'>  </span>BufferSize</span></span></b>,</p>
<p class=MsoNormal><span style='mso-tab-count:2'>                                </span><b
style='mso-bidi-font-weight:normal'>OUT <span class=GramE>PVOID<span
style='font-weight:normal'><span style='mso-spacerun:yes'>  </span>Buffer</span></span></b>,</p>
<p class=MsoNormal><span style='mso-tab-count:2'>                                </span><b
style='mso-bidi-font-weight:normal'>OUT <span class=GramE>PULONG<span
style='font-weight:normal'><span style='mso-spacerun:yes'> 
</span>ReturnedLength</span></span></b></p>
<p class=MsoNormal><span style='mso-tab-count:1'>                </span>);</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'>HalQuerySystemInformation</b>
can be used to read MCA banks status registers</p>
<b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;
font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='page-break-before:always'>
</span></b>
<p class=IAHeaders>Parameters<i style='mso-bidi-font-style:normal'><o:p></o:p></i></p>
<p class=da><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight:
normal'>InformationClass</b></span></span><span class=GramE><b
style='mso-bidi-font-weight:normal'> :</b></span><b style='mso-bidi-font-weight:
normal'> </b>Specify<i style='mso-bidi-font-style:normal'> </i><b
style='mso-bidi-font-weight:normal'>HalMcaLogInformation </b>to read the
current MCA error log<b style='mso-bidi-font-weight:normal'>.<span
style='mso-spacerun:yes'>  </span></b>If any uncorrected Machine Check error is
found, it is returned in the buffer. For Itanium systems, specify<i
style='mso-bidi-font-style:normal'> </i><span class=SpellE><b style='mso-bidi-font-weight:
normal'>HalCmcLogInformation</b></span><b style='mso-bidi-font-weight:normal'> </b>to
read the current Corrected CPU Error Log and <span class=SpellE><b
style='mso-bidi-font-weight:normal'>HalCpeLogInformation</b></span><b
style='mso-bidi-font-weight:normal'> </b>to read the current Corrected Platform
Error Log</p>
<p class=MsoNormal><i style='mso-bidi-font-style:normal'><o:p>&nbsp;</o:p></i></p>
<p class=da><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight:
normal'>BufferSize</b></span></span><span class=GramE> :</span> Specifies the
size in bytes of the buffer supplied by the caller.</p>
<p class=da><span class=GramE><b style='mso-bidi-font-weight:normal'>Buffer :</b></span><b
style='mso-bidi-font-weight:normal'> </b>Points to a caller-supplied buffer of
type MCA_EXCEPTION that will contain the information returned by this routine.
For Itanium, the returned information will be compliant, at a minimum, with the
V3.0 SAL specification (January 2001), Appendix B, “Error Record Structures”.
For Pentium Pro, the information is as described below.</p>
<p class=da><i style='mso-bidi-font-style:normal'><o:p>&nbsp;</o:p></i></p>
<p class=da><span class=SpellE><span class=GramE><i style='mso-bidi-font-style:
normal'>typedef</i></span></span><i style='mso-bidi-font-style:normal'> union
_MCI_STATS {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span class=SpellE><span class=GramE>struct</span></span> {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>USHORT<span
style='mso-tab-count:1'>               </span>McaCod;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>USHORT<span
style='mso-tab-count:1'>               </span>MsCod;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>OtherInfo <span style='mso-tab-count:1'>              </span>:
25;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>Damage<span style='mso-tab-count:2'>                 </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>AddressValid<span style='mso-tab-count:1'>        </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>MiscValid<span style='mso-tab-count:1'>             </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>Enabled<span style='mso-tab-count:2'>                 </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>UnCorrected<span style='mso-tab-count:1'>        </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>OverFlow<span style='mso-tab-count:1'>              </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span style='mso-spacerun:yes'>    </span>ULONG<span
style='mso-tab-count:1'> </span>Valid<span style='mso-tab-count:2'>                      </span>:
1;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>} MciStats;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><o:p>&nbsp;</o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>ULONGLONG<span style='mso-tab-count:1'>          </span>QuadPart;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'>} MCI_STATS, *PMCI_STATS;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span
style='mso-spacerun:yes'> </span><o:p></o:p></i></p>
<p class=da><span class=GramE><i style='mso-bidi-font-style:normal'>typedef</i></span><i
style='mso-bidi-font-style:normal'> union _MCI_ADDR{<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span class=GramE>struct</span> {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span>ULONG Address;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span>ULONG Reserved;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>} MciAddr;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>ULONGLONG<span style='mso-tab-count:1'>          </span>QuadPart;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'>} MCI_ADDR, *PMCI_ADDR;<o:p></o:p></i></p>
<i style='mso-bidi-font-style:normal'><span style='font-size:10.0pt;font-family:
"Times New Roman";mso-fareast-font-family:"Times New Roman";mso-ansi-language:
EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br clear=all
style='mso-special-character:line-break;page-break-before:always'>
</span></i>
<p class=da><i style='mso-bidi-font-style:normal'><o:p>&nbsp;</o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span
style='mso-spacerun:yes'> </span><o:p></o:p></i></p>
<p class=da><span class=SpellE><span class=GramE><i style='mso-bidi-font-style:
normal'>typedef</i></span></span><i style='mso-bidi-font-style:normal'> <span
class=SpellE>struct</span> _MCA_EXCEPTION {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>ULONG<span style='mso-tab-count:4'>                                                     </span>VersionNumber;<span
style='mso-tab-count:1'>  </span>// Version number of this record type<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>MCA_EXCEPTION_TYPE<span style='mso-tab-count:2'>                    </span>ExceptionType;<span
style='mso-tab-count:1'>    </span>// MCA or MCE<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>LARGE_INTEGER <span style='mso-tab-count:2'>                 </span>TimeStamp;<span
style='mso-tab-count:1'>           </span>// exception recording timestamp<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>ULONG<span style='mso-tab-count:4'>                                                     </span>ProcessorNumber<span
class=GramE>;/</span>/ processor number<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span><span style='mso-spacerun:yes'> </span><o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span><span class=GramE>union</span> {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span><span class=GramE>struct</span> {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
3'>                          </span>UCHAR<span style='mso-tab-count:3'>                                  </span>BankNumber;<span
style='mso-tab-count:2'>                       </span>// bank number<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
3'>                          </span>MCI_STATS<span style='mso-tab-count:2'>                          </span>Status;<span
style='mso-spacerun:yes'>     </span><o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
3'>                          </span>MCI_ADDR<span style='mso-tab-count:2'>                          </span>Address;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
3'>                          </span>ULONGLONG<span style='mso-tab-count:2'>                      </span>Misc;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span>} Mca;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span><o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span><span class=GramE>struct</span> {<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
3'>                          </span>ULONGLONG<span style='mso-tab-count:1'>      </span>McAddress;<span
style='mso-tab-count:1'>           </span>// physical address for the cycle
causing the error<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
3'>                          </span>ULONGLONG<span style='mso-tab-count:1'>      </span>McType;
<span style='mso-tab-count:1'>               </span>// cycle specification
causing the error<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
2'>          </span>} Mce;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><span style='mso-tab-count:
1'>      </span>} u;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><o:p>&nbsp;</o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'>} MCA_EXCEPTION,
*PMCA_EXCEPTION;<o:p></o:p></i></p>
<p class=da><i style='mso-bidi-font-style:normal'><o:p>&nbsp;</o:p></i></p>
<p class=da><span class=GramE><b style='mso-bidi-font-weight:normal'>ReturnedLength
:</b></span><b style='mso-bidi-font-weight:normal'> </b>Specifies the number of
bytes returned in Buffer.</p>
<p class=IAHeaders>Include<i style='mso-bidi-font-style:normal'><o:p></o:p></i></p>
<p class=da style='margin-left:0in;text-indent:0in'><span class=SpellE>ntddk.h</span><o:p></o:p></p>
<p class=IAHeaders>Return Value</p>
<p class=MsoNormal style='margin-left:.25in;text-indent:-.25in;mso-text-indent-alt:
-.25in;mso-list:l0 level1 lfo1;mso-list-change:\F0B7 "Danny Smith" 20010502T0820'><![if !supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span class=SpellE><b style='mso-bidi-font-weight:
normal'>HalQuerySystemInformation</b></span> returns STATUS_SUCCESS if an error
log exists.</p>
<p class=IAHeaders>Comments</p>
<p class=MsoNormal>This<b style='mso-bidi-font-weight:normal'> </b>function
returns the first error. It is the MCA driver responsibility to call this
routine again to see if there are any more errors available</p>
<p class=TYPEWRITER><o:p>&nbsp;</o:p></p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>