Machine Check Exception Handling for a Pentium Pro Processor

If the MCA exception handler detects only Intel Pentium technology (style) MCE support on the platform, it does the following:

  • If an 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.

  • Call KeBugCheckEx with the following four parameters, to halt the system:

    1. Low 32 bits of P5_MC_TYPE MSR
    2. Always zero
    3. High 32 bits of P5_MC_ADDR MSR
    4. Low 32 bits of P5_MC_ADDR MSR

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:

  • Calls the MCA Driver ExceptionCallback routine to give the MCA driver a chance to log the errors in NVRAM.

  • Calls KeBugCheckEx with the following four parameters, to halt the system:

    1. MCA bank number that generated MCE
    2. Address field from MCi_ADDR MSR for this MCA bank
    3. High 32 bits of MCi_STATUS MSR for this MCA bank
    4. Low 32 bits of MCi_STATUS MSR for this MCA bank

If the error is restartable, the exception handler queues a DPC which, when called, reports the MCA bank error to the MCA driver through the DpcCallback routine.

Note   Windows Vista and later versions of Windows do not support the type of Machine Check Architecture (MCA) and Machine Check Exception (MCE) reporting that is described in this topic. MCA and MCE reporting are supported through Windows Hardware Error Architecture (WHEA) instead.

 

 

 

Send comments about this topic to Microsoft