Beginning with Windows Server 2008 and Windows Vista SP1, the Windows Hardware Error Architecture (WHEA) uses the tidPlatformMemoryError data template to report the hardware error data that is associated with platform memory WHEA hardware error events that are logged in the system event log. The tidPlatformMemoryError data template is defined as follows:
- FRUId
-
A GUID that uniquely identifies the Field Replaceable Unit (FRU) that contains the hardware that caused the error condition. The data type for this field is EvtVarTypeGuid.
- FRUText
-
A character string that identifies the Field Replaceable Unit (FRU) that contains the hardware that caused the error condition. The data type for this field is EvtVarTypeAnsiString.
- ValidBits
-
A bitmask that specifies which fields of this data template contain valid data. The data type for this field is EvtVarTypeHexInt64. This field contains a WHEA_MEMORY_ERROR_SECTION_VALIDBITS union.
- ErrorStatus
-
A WHEA_ERROR_STATUS structure that contains memory error status data. The data type for this field is EvtVarTypeHexInt64.
This field contains valid data only if the ErrorStatus bit is set in the ValidBits field.
- PhysicalAddress
-
The physical address where the memory error occurred. The data type for this field is EvtVarTypeHexInt64.
This field contains valid data only if the PhysicalAddress bit is set in the ValidBits field.
- PhysicalAddressMask
-
A bit mask that specifies which of the bits in the PhysicalAddress field contain valid address data. The data type for this field is EvtVarTypeHexInt64.
This field contains valid data only if the PhysicalAddressMask bit is set in the ValidBits field.
- Node
-
The identifier of the node that contains the memory where the memory error occurred in a system with multiple nodes. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Node bit is set in the ValidBits field.
- Card
-
The card number of the card that contains the memory where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Card bit is set in the ValidBits field.
- Module
-
The module number of the module that contains the memory where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Module bit is set in the ValidBits field.
- Bank
-
The bank number of the memory bank that contains the memory where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Bank bit is set in the ValidBits field.
- Device
-
The device number of the memory device that contains the memory where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Device bit is set in the ValidBits field.
- Row
-
The row number of the location where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Row bit is set in the ValidBits field.
- Column
-
The column number of the location where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the Column bit is set in the ValidBits field.
- BitPosition
-
The bit position where the memory error occurred. The data type for this field is EvtVarTypeHexInt32.
This field contains valid data only if the BitPosition bit is set in the ValidBits field.
- RequesterId
-
An identifier that uniquely identifies the requester associated with the error. The data type for this field is EvtVarTypeHexInt64.
This field contains valid data only if the RequesterId bit is set in the ValidBits field.
- ResponderId
-
An identifier that uniquely identifies the responder associated with the error. The data type for this field is EvtVarTypeHexInt64.
This field contains valid data only if the ResponderId bit is set in the ValidBits field.
- TargetId
-
The hardware address of the intended target of the transaction. The data type for this field is EvtVarTypeHexInt64.
This field contains valid data only if the TargetId bit is set in the ValidBits field.
- ErrorType
-
The type of memory error that occurred. The data type for this field is EvtVarTypeByte.
Possible values are:
- 0
-
An unknown error.
- 1
-
No error occurred.
- 2
-
A single bit ECC error.
- 3
-
A multibit ECC error.
- 4
-
A single symbol ChipKill ECC error.
- 5
-
A multiple symbol ChipKill ECC error.
- 6
-
A master abort.
- 7
-
A target abort.
- 8
-
A parity error.
- 9
-
A watchdog timeout.
- 10
-
An invalid memory address.
- 11
-
A broken memory mirror.
- 12
-
A memory sparing error.
This field contains valid data only if the ErrorType bit is set in the ValidBits field.
- Length
-
The length, in bytes, of the error record that describes the error condition. The data type for this field is EvtVarTypeUInt32.
- RawData
-
A pointer to the error record that describes the error condition. The data type for this field is EvtVarTypeBinary. This field contains a pointer to a WHEA_ERROR_RECORD structure.