|
|
<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> </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> </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"'> </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"'> </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> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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> </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> </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> </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> </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> </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"'> </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> </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"'> </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"'> </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"'> </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'> </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> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </span></span><![endif]>SAL status of the last SAL interface.<o:p></o:p></p>
<p class=MsoNormal><o:p> </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"'> </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"'> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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"'> </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> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>
|