Windows Driver Kit: Windows Hardware Error Architecture
Windows Server 2008 Hardware Error Events
[This is preliminary documentation and subject to change.]
When a hardware error occurs on a system that is running Windows Server 2008, the operating system creates an error record that describes the error condition and sends an event tracing for Windows (ETW) event that contains the error record to user mode. The format of the error record is based on the Common Platform Error Record as described in Appendix N of version 2.1 of the
Unified Extensible Firmware Interface (UEFI) Specification. The operating system converts the ETW hardware error event into an error-specific hardware error event and logs the error-specific event in the system event log.
User-mode applications can be written to process WHEA error records by either registering for notification of the ETW events sent by the operating system or by querying the system event log for the error-specific WHEA hardware error events.
The WHEA hardware error events that are defined and the data templates that are used to describe the hardware error events are different for the ETW hardware error events that the operating system sends up to user mode and for the error-specific hardware error events that are logged in the system event log.
WHEA ETW Hardware Error Events
In Windows Server 2008, the GUID for the provider of the WHEA ETW hardware error events that the operating system sends up to user mode is WHEA_ETW_PROVIDER. The name for the provider is Microsoft-Windows-Kernel-WHEA.
The following table describes the WHEA ETW hardware error event that is defined for Windows Server 2008.
| Event | Description |
| EVENT_WHEA_ERROR | ETW hardware error event. |
The WHEA ETW hardware error event that is defined for Windows Server 2008 has an associated event identifier. An application can determine if a received WHEA ETW event is a hardware error event by examining the EventID system value that is associated with the WHEA ETW event. The WHEA ETW hardware error event that is defined for Windows Server 2008 uses a data template to describe the hardware error data that is associated with the event. The following table lists the event identifier and the data template that is associated with the WHEA ETW hardware error event that is defined for Windows Server 2008.
| Event | Event ID | Data template |
| EVENT_WHEA_ERROR | 20 | WHEAEvent |
The data template is described in the following section.
Note This data template is used only for Windows Server 2008. For information about the data templates used for Windows Vista, see Windows Vista Hardware Error Events.
WHEA Error-Specific Hardware Error Events
In Windows Server 2008, the GUID for the provider of the WHEA error-specific hardware error events that are logged in the system event log is WHEA_TS_ETW_PROVIDER. The name for the provider is Microsoft-Windows-WHEA-Logger.
The following table describes each of the WHEA error-specific hardware error events that are defined for Windows Server 2008.
| Event | Description |
| WHEALOGR_DEFAULT_ERROR | Generic uncorrected hardware error. |
| WHEALOGR_DEFAULT_WARNING | Generic corrected hardware error. |
| WHEALOGR_DEFAULT_INFO | Generic error information. |
| WHEALOGR_PCIE_ERROR | Uncorrected PCI Express error. |
| WHEALOGR_PCIE_WARNING | Corrected PCI Express error. |
| WHEALOGR_XPF_MCA_ERROR | Uncorrected machine check error. |
| WHEALOGR_XPF_MCA_WARNING | Corrected machine check error. |
| WHEALOGR_XPF_AMD64NB_MCA_ERROR | Uncorrected AMD64 northbridge machine check error. |
| WHEALOGR_XPF_AMD64NB_MCA_WARNING | Corrected AMD64 northbridge machine check error. |
| WHEALOGR_PLATFORM_MEMORY_ERROR | Uncorrected platform memory error. |
| WHEALOGR_PLATFORM_MEMORY_WARNING | Corrected platform memory error. |
| WHEALOGR_PCIXBUS_ERROR | Uncorrected PCI/PCI-X bus error. |
| WHEALOGR_PCIXBUS_WARNING | Corrected PCI/PCI-X bus error. |
| WHEALOGR_PCIXDEVICE_ERROR | Uncorrected PCI/PCI-X device error. |
| WHEALOGR_PCIXDEVICE_WARNING | Corrected PCI/PCI-X device error. |
All of these hardware error events are recorded in the system event log.
Each of the WHEA error-specific hardware error events that are defined for Windows Server 2008 has an associated event identifier. An application can determine which types of errors have occurred by examining the EventID system value that is associated with each WHEA error-specific hardware error event found in the system event log. The following table lists the event identifier and the data template that is associated with each of the WHEA error-specific hardware error events that are defined for Windows Server 2008.
| Event | Event ID | Data template |
| WHEALOGR_DEFAULT_ERROR | 1 | tidDefaultError |
| WHEALOGR_DEFAULT_WARNING | 2 | tidDefaultError |
| WHEALOGR_DEFAULT_INFO | 3 | tidDefaultError |
| WHEALOGR_PCIE_ERROR | 16 | tidPCIExpressError |
| WHEALOGR_PCIE_WARNING | 17 | tidPCIExpressError |
| WHEALOGR_XPF_MCA_ERROR | 18 | tidMachineCheck |
| WHEALOGR_XPF_MCA_WARNING | 19 | tidMachineCheck |
| WHEALOGR_XPF_AMD64NB_MCA_ERROR | 20 | tidAMD64NBMachineCheck |
| WHEALOGR_XPF_AMD64NB_MCA_WARNING | 21 | tidAMD64NBMachineCheck |
| WHEALOGR_PLATFORM_MEMORY_ERROR | 22 | tidPlatformMemoryError |
| WHEALOGR_PLATFORM_MEMORY_WARNING | 23 | tidPlatformMemoryError |
| WHEALOGR_PCIXBUS_ERROR | 24 | tidPciXBusError |
| WHEALOGR_PCIXBUS_WARNING | 25 | tidPciXBusError |
| WHEALOGR_PCIXDEVICE_ERROR | 26 | tidPciXDeviceError |
| WHEALOGR_PCIXDEVICE_WARNING | 27 | tidPciXDeviceError |
Each of the data templates is described in the following sections.
Note These data templates are used only for Windows Server 2008. For information about the data templates used for Windows Vista, see Windows Vista Hardware Error Events.