Leaked source code of windows server 2003
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.

274 lines
14 KiB

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Language" content="en-us">
  4. <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
  5. <meta name="ProgId" content="FrontPage.Editor.Document">
  6. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  7. <title>MCA Management Application</title>
  8. <style>
  9. <!--
  10. div.Section1
  11. {page:Section1;}
  12. span.GramE
  13. {}
  14. -->
  15. </style>
  16. </head>
  17. <body>
  18. <font face="Verdana">
  19. <h2><a name="MYSAMPLE">MCA Management Application</a> </h2>
  20. <hr>
  21. <h3>SUMMARY:</h3>
  22. </font><font face="Verdana" size="2">
  23. <p>The &quot;MCA Management Application&quot; is a command-line application, which
  24. queries, retrieves, parses and displays machine check error records on IA64 class
  25. computer systems running a 64-bit (IA64) version of Windows XP or Windows Server 2003 Family.
  26. The application provides the same support also for machine check exception
  27. information on X86 and X86-64 platforms running 32-bit (X86) versions of Windows Server 2003 Family
  28. and future releases of Windows correspondingly. The sample application
  29. demonstrates system developers how to make use of the MCA infrastructure on
  30. Windows Server 2003 and Windows XP platforms to identify hardware problems. More sophisticated system
  31. management applications may further enhance the basic functionality of this
  32. sample to also log, analyze and report these hardware problems.</p>
  33. <h3>DETAILED INFORMATION:</h3>
  34. <p>Machine Check Architecture (MCA) mainly attempts to increase the RAS
  35. (reliability, availability and scalability) features of large enterprise-class
  36. computer systems. Therefore, management applications need to make use of the MCA
  37. technology intensively to identify, analyze and solve hardware problems more
  38. efficiently. This sample application demonstrates the current OS MCA support on
  39. 32-bit and 64-bit versions of Windows Server 2003 Family and 64-bit version of
  40. Windows XP that might be utilized to achieve
  41. these maintenance goals.<br>
  42. <br>
  43. The application primarily uses Windows Management Instrumentation (WMI) to query
  44. and retrieve MCA Error Records from the OS. MCA Error
  45. Records on 64-bit (IA64) versions of Windows Server 2003 Family and Windows XP are standard and are
  46. defined in &quot;Intel SAL 3.0 Specification&quot;. Thus, system applications may take
  47. advantage of this standardization of hardware error reporting to manage their
  48. IA-64 server systems more efficiently and accurately. See &lt;mce.h&gt; for the MCA Error
  49. Record definitions.</p>
  50. <p>On the other hand, Machine Check Exception information is retrieved from WMI
  51. on X86 and X86-64 systems running 32-bit (X86) versions of
  52. Windows Server 2003 Family and future Windows releases, rather than MCA Error Records as in
  53. IA64 class systems. The Machine Check Exception information is very similar on
  54. X86 and X86-64 and can also be found in &lt;mce.h&gt;.<br>
  55. <br>
  56. Machine check errors can be classified into two main categories:<br>
  57. <br>
  58. - Fatal errors<br>
  59. - Corrected errors<br>
  60. <br>
  61. Fatal errors are hardware failures that cannot be recovered from thus a reboot
  62. is required after the system bugchecks (blue-screen). The machine check error
  63. record that encapsulates the error information is made available to application
  64. through WMI and the System Event-Log upon reboot. Therefore, management
  65. applications must query the OS via WMI after every reboot to check for possible
  66. fatal machine check errors.<br>
  67. <br>
  68. Corrected errors are hardware failures that are corrected by the hardware and/or
  69. firmware (PAL/SAL). These errors are reported to the OS for informational
  70. purposes that might be used to diagnose the failing hardware and prevent future
  71. problems. These errors do not cause the system to bugcheck so management
  72. applications can retrieve these corrected machine check error record real-time
  73. through WMI.<br>
  74. <br>
  75. This sample demonstrates how to query, retrieve, parse and display fatal and
  76. corrected machine check errors.</p>
  77. <h3>SYSTEM REQUIREMENTS:</h3>
  78. <p><b>Software:</b><br>
  79. This sample can be build for and run on both 32-bit and 64-bit versions of Windows Server 2003 Family
  80. and 64-bit version of Windows XP
  81. as long as the hardware requirements are satisfied as explained below. Windows
  82. 2000, Windows XP (32-bit) and all other earlier releases of Windows are not
  83. supported.<br>
  84. <br>
  85. <b>Hardware:<br>
  86. </b>This sample can only be run on the following hardware platforms:&nbsp;&nbsp;&nbsp; </p>
  87. <ul>
  88. <li>All IA64 systems.</li>
  89. <li>All X86-64 systems.</li>
  90. <li>Some X86 systems, specifically Pentium 4 and higher.</li>
  91. </ul>
  92. <h3>BUILDING THE SAMPLE:</h3>
  93. <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">The sample can be build
  94. through the DDK build environment. Just select the appropriate build window for
  95. your platform and run <b>build</b> in the &quot;src\kernel\mca\mcamgmt&quot; directory.
  96. When the build operation successfully completes, an executable file called: &quot;mcamgmt.exe&quot;
  97. is created. </span></p>
  98. <h3>CODE TOUR:</h3>
  99. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="738" id="AutoNumber1">
  100. <tr>
  101. <td width="160" align="center" bgcolor="#CCCCCC"><b><font size="2">File</font></b></td>
  102. <td width="575" align="center" bgcolor="#CCCCCC"><b><font size="2">
  103. Description</font></b></td>
  104. </tr>
  105. <tr>
  106. <td width="160"><font size="2" color="#0000FF">&nbsp;Common.cpp</font></td>
  107. <td width="575"><font size="2">&nbsp;Common functions that are needed by both
  108. fatal and corrected error retrieval. </font></td>
  109. </tr>
  110. <tr>
  111. <td width="160"><font size="2" color="#0000FF">&nbsp;Common.h</font></td>
  112. <td width="575"><font size="2">&nbsp;Header file for Common.cpp</font></td>
  113. </tr>
  114. <tr>
  115. <td width="160"><font size="2" color="#0000FF">&nbsp;CorrectedEngine.cpp</font></td>
  116. <td width="575"><font size="2">&nbsp;Corrected error retrieval functions.</font></td>
  117. </tr>
  118. <tr>
  119. <td width="160"><font size="2" color="#0000FF">&nbsp;CorrectedEngine.h</font></td>
  120. <td width="575"><font size="2" face="Verdana">&nbsp;Header file for
  121. CorrectedEngine.cpp</font></td>
  122. </tr>
  123. <tr>
  124. <td width="160"><font size="2" color="#0000FF">&nbsp;FatalEngine.cpp</font></td>
  125. <td width="575"><font size="2" face="Verdana">&nbsp;Fatal error
  126. retrieval functions.</font></td>
  127. </tr>
  128. <tr>
  129. <td width="160"><font size="2" color="#0000FF">&nbsp;FatalEngine.h</font></td>
  130. <td width="575"><font size="2" face="Verdana">&nbsp;Header file for
  131. FatalEngine.cpp</font></td>
  132. </tr>
  133. <tr>
  134. <td width="160"><font size="2" color="#0000FF">&nbsp;Mca.cpp</font></td>
  135. <td width="575"><font size="2">&nbsp;User interaction, argument parsing, and
  136. general control function of the application.</font></td>
  137. </tr>
  138. <tr>
  139. <td width="160"><font size="2" color="#0000FF">&nbsp;Mca.h</font></td>
  140. <td width="575"><font size="2">&nbsp;Header file for Mca.cpp</font></td>
  141. </tr>
  142. <tr>
  143. <td width="160"><font size="2" color="#0000FF">&nbsp;MCAObjectSink.cpp</font></td>
  144. <td width="575"><font size="2">&nbsp;Implementation for the MCAObjectSink class
  145. used for WMI notifications.</font></td>
  146. </tr>
  147. <tr>
  148. <td width="160"><font size="2" color="#0000FF">&nbsp;MCAObjectSink.h</font></td>
  149. <td width="575"><font size="2">&nbsp;Header file for MCAObjectSink.cpp</font></td>
  150. </tr>
  151. </table>
  152. </font>
  153. <h3 align="left"><font face="Verdana">USAGE:</font></h3>
  154. <p align="left"><font face="Verdana" size="2">The sample can be run according to
  155. the following command-line usage:<br>
  156. <br>
  157. <b><font color="#008000">mcamgmt [ /fatal | {/corrected &lt;TimeOut&gt;} | /? | /usage
  158. ] </font></b></font></p>
  159. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
  160. <tr>
  161. <td width="20%"><font color="#008000" face="Verdana" size="2">/fatal</font></td>
  162. <td width="80%"><font face="Verdana" size="2">Queries the system for a fatal
  163. error (machine check abort).</font></td>
  164. </tr>
  165. <tr>
  166. <td width="20%"><font color="#008000" face="Verdana" size="2">/corrected
  167. &lt;TimeOut&gt;</font></td>
  168. <td width="80%"><font face="Verdana" size="2">Queries the system for a
  169. corrected error (CMC and CPE). The <font color="#008000">&lt;TimeOut&gt;</font>
  170. parameter specifies the number of minutes to wait for an error to occur. If
  171. no corrected error is retrieved in <font color="#008000">&lt;TimeOut&gt;</font>
  172. minutes, then the application exits. </font></td>
  173. </tr>
  174. <tr>
  175. <td width="20%"><font face="Verdana" size="2"><font color="#008000">/?</font>
  176. or <font color="#008000">/usage</font></font></td>
  177. <td width="80%"><font face="Verdana" size="2">Shows the command-line usage
  178. of the tool.</font></td>
  179. </tr>
  180. </table>
  181. <h3 align="left"><font face="Verdana">WHAT THE SAMPLE DOES NOT DEMONSTRATE:</font></h3>
  182. <p align="left"><font face="Verdana" size="2">
  183. This sample does not demonstrate how to parse the MCA Error Record or MCA
  184. Exception data into a more readable and friendly description, how to log this
  185. data to a file or any other data repository, and how to analyze the data to
  186. predict and prevent future
  187. system failures. However, these sophisticated features might be integrated
  188. easily upon the basic infrastructure provided in this sample.
  189. <span style="background-color: #FFFFFF"><br>
  190. &nbsp;</span></font></p>
  191. <h3 align="left"><font face="Verdana">NOTES:</font></h3>
  192. <p align="left"><font face="Verdana" size="2">Keep in mind that in order for
  193. this sample to work, that is, retrieve, parse and display the MCA Error Record
  194. or MCA Exception,
  195. a machine check error should occur on your system. Otherwise, you will not get
  196. any data from the system. In case of corrected error retrieval, the application
  197. will simply exit after <font color="#008000">
  198. <span style="background-color: #FFFFFF">&lt;TimeOut&gt;</span></font> minutes if no
  199. corrected machine check error occurs during that timeframe. On the other hand,
  200. in case of fatal error retrieval, the application will simply report that no
  201. error record is present if no fatal machine check error has occurred before the
  202. reboot.</font></p>
  203. <p align="left"><font face="Verdana" size="2">You may use the latest Hardware
  204. Compatibility Test (HCT) Kit provided by Microsoft to inject fatal and corrected
  205. machine check errors to IA64 systems. The HCT Kit includes a test tool (<i>mcatest.exe</i>)
  206. for verifying the MCA support of the hardware and firmware of IA64 class server
  207. systems. This test tool
  208. injects fatal and machine check errors to the system and verifies the
  209. corresponding data records upon retrieval. You can use this tool to inject these
  210. errors and then use this sample to retrieve and display their data record.</font></p>
  211. <h3 align="left"><font face="Verdana">REFERENCE:</font></h3>
  212. <p align="left"><font face="Verdana" size="2">For more information about the
  213. Machine Check Architecture (MCA) and Windows support for this technology, please
  214. visit the following websites.</font></p>
  215. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3">
  216. <tr>
  217. <td width="56%" align="center" bgcolor="#C0C0C0"><b>
  218. <font face="Verdana" size="2">Name</font></b></td>
  219. <td width="56%" align="center" bgcolor="#C0C0C0"><b>
  220. <font face="Verdana" size="2">Link</font></b></td>
  221. </tr>
  222. <tr>
  223. <td width="56%"><span style="font-size: 10.0pt; font-family: Verdana">Intel
  224. System Abstraction Layer (SAL) Specification 3.0 <i>(Specifically, check out
  225. <font color="#008000">Section&nbsp; 4 - Machine Checks</font>)</i></span></td>
  226. <td width="56%">
  227. <p class="MsoNormal"><span style="font-size:10.0pt;font-family:Verdana">
  228. <a href="http://www.intel.com/design/Itanium/Downloads/245359.htm" style="color: blue; text-decoration: underline; text-underline: single">
  229. http://www.intel.com/design/Itanium/Downloads/245359.htm</a></span></td>
  230. </tr>
  231. <tr>
  232. <td width="56%"><span style="font-size: 10.0pt; font-family: Verdana">MCA
  233. Support in 64-bit Windows</span></td>
  234. <td width="56%">
  235. <p class="MsoNormal"><span style="font-size:10.0pt;font-family:Verdana">
  236. <a href="http://www.microsoft.com/hwdev/platform/64bit/MCAsupport.asp" style="color: blue; text-decoration: underline; text-underline: single">
  237. http://www.microsoft.com/hwdev/platform/64bit/MCAsupport.asp</a></span></td>
  238. </tr>
  239. <tr>
  240. <td width="56%"><span style="font-size: 10.0pt; font-family: Verdana">MCA
  241. Implementation guide for 64-bit Windows</span></td>
  242. <td width="56%">
  243. <p class="MsoNormal"><span style="font-size:10.0pt;font-family:Verdana">
  244. <a href="http://www.microsoft.com/hwdev/platform/64bit/MCAimpguide.asp" style="color: blue; text-decoration: underline; text-underline: single">
  245. http://www.microsoft.com/hwdev/platform/64bit/MCAimpguide.asp</a></span></td>
  246. </tr>
  247. <tr>
  248. <td width="56%"><span style="font-size: 10.0pt; font-family: Verdana">
  249. Windows Logo program for 64-bit hardware&nbsp; (Latest HCT Server Tests)</span></td>
  250. <td width="56%">
  251. <p class="MsoNormal"><font face="Verdana" size="2">
  252. <a href="http://www.microsoft.com/hwdq/hwtest/devices/systems.asp?area=syssrv-srvr">
  253. http://www.microsoft.com/hwdq/hwtest/devices/systems.asp?area=syssrv-srvr</a></font></td>
  254. </tr>
  255. <tr>
  256. <td width="56%"><span style="font-size: 10.0pt; font-family: Verdana">Design
  257. guidelines for 64-bit systems</span></td>
  258. <td width="56%">
  259. <p class="MsoNormal"><span style="font-size:10.0pt;font-family:Verdana">
  260. &nbsp;<a href="http://www.microsoft.com/hwdev/platform/pcdesign/desguide/serverdg.asp#Design3" style="color: blue; text-decoration: underline; text-underline: single">http://www.microsoft.com/hwdev/platform/pcdesign/desguide/serverdg.asp#Design3</a></span></td>
  261. </tr>
  262. </table>
  263. <p align="center"><a href="#top"><font face="Verdana" size="2">Top of page</font></a><font face="Verdana" size="2">
  264. </font>
  265. </p>
  266. <hr><font SIZE="2" face="Verdana">
  267. <p><i>Copyright (c) 2002 Microsoft Corporation. All rights reserved.</i></p>
  268. </font>
  269. </body>
  270. </html>