Skip to content

Commit 88c51e0

Browse files
committed
Update documentation to reflect recent changes
1 parent acdfe59 commit 88c51e0

File tree

2 files changed

+48
-164
lines changed

2 files changed

+48
-164
lines changed

README.md

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,23 @@ DecodeWheaRecord
66

77
A work-in-progress utility to decode hex-encoded Windows Hardware Event Architecture (WHEA) records.
88

9-
- [Requirements](#requirements)
10-
- [Support status](#support-status)
11-
- [WHEA events](#whea-events)
12-
- [Glossary](#glossary)
13-
- [ACPI](#acpi)
14-
- [Architectures](#architectures)
15-
- [ARMv8](#armv8)
16-
- [IA-64 (Itanium)](#ia-64-itanium)
17-
- [Microsoft](#microsoft)
18-
- [PCIe](#pcie)
19-
- [Specifications](#specifications)
20-
- [UEFI](#uefi)
21-
- [Miscellaneous](#miscellaneous)
22-
- [License](#license)
9+
- [DecodeWheaRecord](#decodewhearecord)
10+
- [Requirements](#requirements)
11+
- [Support status](#support-status)
12+
- [WHEA errors](#whea-errors)
13+
- [WHEA events](#whea-events)
14+
- [Glossary](#glossary)
15+
- [ACPI](#acpi)
16+
- [Architectures](#architectures)
17+
- [ARMv8](#armv8)
18+
- [IA-32 (x86)](#ia-32-x86)
19+
- [IA-64 (Itanium)](#ia-64-itanium)
20+
- [Microsoft](#microsoft)
21+
- [PCIe](#pcie)
22+
- [Specifications](#specifications)
23+
- [UEFI](#uefi)
24+
- [Miscellaneous](#miscellaneous)
25+
- [License](#license)
2326

2427
Requirements
2528
------------
@@ -30,9 +33,7 @@ Requirements
3033
Support status
3134
--------------
3235

33-
### WHEA events
34-
35-
WHEA events are output by the `Microsoft-Windows-Kernel-WHEA` provider to the `Microsoft-Windows-Kernel-WHEA/Operational` channel. You can view these events using standard Windows tools such as the *Event Viewer* application and `Get-WinEvent` PowerShell command. The events are not parsed, with only the "*raw data*" provided in the form of a hex-encoded string. To parse an event provide the value of the `RawData` field to `DecodeWheaRecord` as the input argument. For example:
36+
The `Microsoft-Windows-Kernel-WHEA` provider outputs errors and events to the `Microsoft-Windows-Kernel-WHEA/Errors` and `Microsoft-Windows-Kernel-WHEA/Operational` event log channels respectively. You can view these events using standard Windows tools such as the *Event Viewer* application and `Get-WinEvent` PowerShell command. The events are not parsed, with only the "*raw data*" provided in the form of a hex-encoded string. To parse the WHEA error or event the value of the `RawData` field should be provided to `DecodeWheaRecord` as the input argument. For example:
3637

3738
```plain
3839
DecodeWheaRecord.exe 57684C6701000000200000000000000050434920180000800200000000000000
@@ -49,7 +50,33 @@ Expected size of WHEA_EVENT_LOG_ENTRY_HEADER record: 32
4950
}
5051
```
5152

52-
Support for the large majority of WHEA events is present, as of Windows 11 22H2 and Windows Server 2022, but few have been tested against real test data. Adding support for the minority of events which are unsupported would also benefit by having real events to test against. If you're using this utility to parse an event which doesn't have a test case, as per the table below, please consider submitting it via a [GitHub issue](https://github.com/ralish/DecodeWheaRecord/issues) to help us verify the correctness of the implementation and improve support.
53+
Support for the majority of errors and events is present, current as of Windows 11 22H2 and Windows Server 2022, but few have been tested against real data. Adding support for the unsupported errors and events would greatly benefit by having real data to test against. If you're using this utility to parse an event which doesn't have a test case, as per the table below, please consider submitting it via a [GitHub issue](https://github.com/ralish/DecodeWheaRecord/issues) to help us verify the correctness of the implementation and improve support.
54+
55+
### WHEA errors
56+
57+
| Name | Type | Status | GUID | Structure name | Documentation |
58+
| ------------------------------- | --------- | --------------- | -------------------------------------- | --------------------------------------- | ------------- |
59+
| ARM Processor Error | Standard | Done | `e19e3d16-bc11-11e4-9caa-c2051d5d46b0` | `WHEA_ARM_PROCESSOR_ERROR_SECTION` | Undocumented |
60+
| Correctable Memory Error | Microsoft | Done | `0e36c93e-ca15-4a83-ba8a-cbe80f7f0017` | `WHEA_MEMORY_CORRECTABLE_ERROR_SECTION` | [No](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_memory_correctable_error_section) |
61+
| Correctable PCIe Error | Microsoft | Partial | `e96eca99-53e2-4f52-9be7-d2dbe9508ed0` | `WHEA_PCIE_CORRECTABLE_ERROR_SECTION` | Undocumented |
62+
| Error Recovery Information | Microsoft | Done | `c34832a1-02c3-4c52-a9f1-9f1d5d7723fc` | `WHEA_ERROR_RECOVERY_INFO_SECTION` | Undocumented |
63+
| Firmware Error Record Reference | Standard | Done | `81212a96-09ed-4996-9471-8d729c8e69ed` | `WHEA_FIRMWARE_ERROR_RECORD_REFERENCE` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_firmware_error_record_reference) |
64+
| Generic Processor Error | Standard | Partial | `9876ccad-47b4-4bdb-b65e-16f193c4f3db` | `WHEA_PROCESSOR_GENERIC_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_processor_generic_error_section) |
65+
| Hardware Error Packet (v1) | Microsoft | Done | `e71254e9-c1b9-4940-ab76-909703a4320f` | `WHEA_ERROR_PACKET_V1` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_error_packet_v1) |
66+
| Hardware Error Packet (v2) | Microsoft | Done | `e71254e9-c1b9-4940-ab76-909703a4320f` | `WHEA_ERROR_PACKET_V2` | [Partial](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_error_packet_v2) |
67+
| IA32/AMD64 Machine Check Error | Microsoft | Done | `8a1e1d01-42f9-4557-9c33-565e5cc3f7e8` | `WHEA_XPF_MCA_SECTION` | [No](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_xpf_mca_section) |
68+
| IA32/AMD64 Processor Error | Standard | Partial | `dc3ea0b0-a144-4797-b95b-53fa242b6e1d` | `WHEA_XPF_PROCESSOR_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_xpf_processor_error_section) |
69+
| IA64 Processor Error | Standard | Not implemented | `e429faf1-3cb7-11d4-bca7-0080c73c8881` | | |
70+
| Memory Error | Standard | Partial | `a5bc1114-6f64-4ede-b863-3e83ed7c83b1` | `WHEA_MEMORY_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_memory_error_section) |
71+
| MSR Dump | Microsoft | Done | `1c15b445-9b06-4667-ac25-33c056b88803` | `WHEA_MSR_DUMP_SECTION` | [No](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_msr_dump_section) |
72+
| NMI Error | Microsoft | Done | `e71254e7-c1b9-4940-ab76-909703a4320f` | `WHEA_NMI_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_nmi_error_section) |
73+
| PCI Component/Device Error | Standard | Done | `eb5e4685-ca66-4769-b6a2-26068b001326` | `WHEA_PCIXDEVICE_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_pcixdevice_error_section) |
74+
| PCI Express Error | Standard | Partial | `d995e954-bbc1-430f-ad91-b44dcb3c6f35` | `WHEA_PCIEXPRESS_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_pciexpress_error_section) |
75+
| PCI/PCI-X Bus Error | Standard | Done | `c5753963-3b84-4095-bf78-eddad3f9c9dd` | `WHEA_PCIXBUS_ERROR_SECTION` | [Yes](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_pcixbus_error_section) |
76+
| Persistent Mememory Error | Microsoft | Partial | `81687003-dbfd-4728-9ffd-f0904f97597d` | `WHEA_PMEM_ERROR_SECTION` | [No](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_pmem_error_section) |
77+
| Project Mu Telemetry | Microsoft | Done | `85183a8b-9c41-429c-939c-5c3c087ca280` | `MU_TELEMETRY_SECTION` | Undocumented |
78+
79+
### WHEA events
5380

5481
| Entry ID | Symbolic name | Structure name | Test case | Notes |
5582
| ------------ | ------------------------------ | -------------------------------------------------- | ---------- | --------------- |

src/DecodeWheaRecord/NativeMethods.cs

Lines changed: 3 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -136,174 +136,31 @@ public virtual void Validate() { }
136136
{ Guid.Parse("71761d37-32b2-45cd-a7d0-b0fedd93e8cf"), "Intel VT for Directed I/O specific DMAr section" },
137137
{ Guid.Parse("036f84e1-7f37-428c-a79e-575fdfaa84ec"), "IOMMU specific DMAr section" },
138138

139-
/*
140-
* Section type: Standard
141-
* Structure: WHEA_ARM_PROCESSOR_ERROR_SECTION
142-
* Docs: Undocumented
143-
* Support: Done
144-
*/
139+
// Standard sections
145140
{ ARM_PROCESSOR_ERROR_SECTION_GUID, "ARM Processor Error" },
146-
147-
/*
148-
* Section type: Standard
149-
* Structure: WHEA_FIRMWARE_ERROR_RECORD_REFERENCE
150-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_firmware_error_record_reference
151-
* Support: Done
152-
*/
153141
{ FIRMWARE_ERROR_RECORD_REFERENCE_GUID, "Firmware Error Record Reference" },
154-
155-
/*
156-
* Section type: Standard
157-
* Structure: WHEA_PROCESSOR_GENERIC_ERROR_SECTION
158-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_processor_generic_error_section
159-
* Support: Done
160-
*/
161142
{ PROCESSOR_GENERIC_ERROR_SECTION_GUID, "Generic Processor Error" },
162-
163-
/*
164-
* Section type: Standard
165-
* Structure: WHEA_XPF_PROCESSOR_ERROR_SECTION
166-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_xpf_processor_error_section
167-
* Support: Done
168-
*/
169143
{ XPF_PROCESSOR_ERROR_SECTION_GUID, "IA32/AMD64 Processor Error" },
170-
171-
/*
172-
* Section type: Standard
173-
* Structure: TODO
174-
* Docs: TODO
175-
* Support: TODO
176-
*/
177144
{ IPF_PROCESSOR_ERROR_SECTION_GUID, "IA64 Processor Error" },
178-
179-
/*
180-
* Section type: Standard
181-
* Structure: WHEA_MEMORY_ERROR_SECTION
182-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_memory_error_section
183-
* Support: Done
184-
*/
185145
{ MEMORY_ERROR_SECTION_GUID, "Memory Error" },
186-
187-
/*
188-
* Section type: Standard
189-
* Structure: WHEA_PCIXDEVICE_ERROR_SECTION
190-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_pcixdevice_error_section
191-
* Support: Done
192-
*/
193146
{ PCIXDEVICE_ERROR_SECTION_GUID, "PCI Component/Device Error" },
194-
195-
/*
196-
* Section type: Standard
197-
* Structure: WHEA_PCIEXPRESS_ERROR_SECTION
198-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_pciexpress_error_section
199-
* Support: Done
200-
*/
201147
{ PCIEXPRESS_ERROR_SECTION_GUID, "PCI Express Error" },
202-
203-
/*
204-
* Section type: Standard
205-
* Structure: WHEA_PCIXBUS_ERROR_SECTION
206-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_pcixbus_error_section
207-
* Support: Done
208-
*/
209148
{ PCIXBUS_ERROR_SECTION_GUID, "PCI/PCI-X Bus Error" },
210149

211-
/*
212-
* Section type: Microsoft
213-
* Structure: WHEA_MEMORY_CORRECTABLE_ERROR_SECTION
214-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_memory_correctable_error_section
215-
* Support: Done
216-
*/
150+
// Microsoft sections
217151
{ MEMORY_CORRECTABLE_ERROR_SUMMARY_SECTION_GUID, "Correctable Memory Error" },
218-
219-
/*
220-
* Section type: Microsoft
221-
* Structure: WHEA_PCIE_CORRECTABLE_ERROR_SECTION
222-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_pcie_correctable_error_section_header
223-
* https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_pcie_correctable_error_devices
224-
* Support: Done
225-
*/
226152
{ PCIE_CORRECTABLE_ERROR_SUMMARY_SECTION_GUID, "Correctable PCIe Error" },
227-
228-
/*
229-
* Section type: Microsoft
230-
* Structure: WHEA_ERROR_RECOVERY_INFO_SECTION
231-
* Docs: Undocumented
232-
* Support: Done
233-
*/
234153
{ RECOVERY_INFO_SECTION_GUID, "Error Recovery Information" },
235-
236-
/*
237-
* Section type: Microsoft
238-
* Structure: WHEA_ERROR_PACKET_V1 / WHEA_ERROR_PACKET_V2
239-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_error_packet_v1
240-
* https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_error_packet_v2
241-
* Support: Partial
242-
*/
243154
{ WHEA_ERROR_PACKET_SECTION_GUID, "Hardware Error Packet" },
244-
245-
/*
246-
* Section type: Microsoft
247-
* Structure: WHEA_XPF_MCA_SECTION
248-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_xpf_mca_section
249-
* Support: Done
250-
*/
251155
{ XPF_MCA_SECTION_GUID, "IA32/AMD64 Machine Check Error" },
252-
253-
/*
254-
* Section type: Microsoft
255-
* Structure: WHEA_MSR_DUMP_SECTION
256-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_msr_dump_section
257-
* Support: Done
258-
*/
259156
{ IPMI_MSR_DUMP_SECTION_GUID, "MSR Dump" },
260-
261-
/*
262-
* Section type: Microsoft
263-
* Structure: WHEA_NMI_ERROR_SECTION
264-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-_whea_nmi_error_section
265-
* Support: Done
266-
*/
267157
{ NMI_SECTION_GUID, "NMI Error" },
268-
269-
/*
270-
* Section type: Microsoft
271-
* Structure: WHEA_PMEM_ERROR_SECTION
272-
* Docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-whea_pmem_error_section
273-
* Support: Done
274-
*/
275158
{ PMEM_ERROR_SECTION_GUID, "Persistent Mememory Error" },
276-
277-
/*
278-
* Section type: Microsoft
279-
* Structure: MU_TELEMETRY_SECTION
280-
* Docs: Undocumented
281-
* Support: Done
282-
*/
283159
{ MU_TELEMETRY_SECTION_GUID, "Project Mu Telemetry" },
284160

285-
/*
286-
* Section type: Microsoft
287-
* Structure: TODO
288-
* Docs: TODO
289-
* Support: TODO
290-
*/
161+
// Microsoft sections (unknown)
291162
{ GENERIC_SECTION_GUID, "GENERIC_SECTION_GUID" },
292-
293-
/*
294-
* Section type: Microsoft
295-
* Structure: TODO
296-
* Docs: TODO
297-
* Support: TODO
298-
*/
299163
{ IPF_SAL_RECORD_SECTION_GUID, "IPF_SAL_RECORD_SECTION_GUID" },
300-
301-
/*
302-
* Section type: Microsoft
303-
* Structure: WHEA_PCI_DPC_SECTION (PCI_EXPRESS_DPC_CAPABILITY)
304-
* Docs: TODO
305-
* Support: TODO
306-
*/
307164
{ WHEA_DPC_CAPABILITY_SECTION_GUID, "WHEA_DPC_CAPABILITY_SECTION_GUID" }
308165
};
309166

0 commit comments

Comments
 (0)