Foutrecords
De Windows Hardware Error Architecture (WHEA) maakt gebruik van een standaardfoutrecordindeling om alle hardwarefouten van het platform weer te geven. Als gevolg hiervan kunnen de systeemfirmware, het Windows-besturingssysteem en de toepassingen in de gebruikersmodus hardwarefoutrapportage en herstelmechanismen ontwerpen die allemaal zijn gebaseerd op dezelfde indeling voor foutrecords.
De indeling van de foutrecords die door WHEA worden gebruikt, zijn gebaseerd op de Common Platform Error Record (CPER), zoals beschreven in bijlage N van versie 2.2 van de UEFI-specificatie (Unified Extensible Firmware Interface).
In het volgende diagram ziet u de algemene indeling van een foutrecord.
Een foutmelding bestaat uit een foutrecordheader, gevolgd door één of meer foutbeschrijvingen van secties met een vaste lengte. Voor elke foutrecordsectiedescriptor is er een bijbehorende foutrecordsectie met variabele lengte die foutgegevens of informatieve gegevens bevat. Een foutrecord moet ten minste één sectie met foutenrecords bevatten.
Een foutrecord kan extra bufferruimte bevatten voor de dynamische toevoeging van foutrecordsecties en sectiedescriptors. De extra bufferruimte kan ook worden gebruikt om de grootte van bestaande foutrecordsecties dynamisch te vergroten.
Een foutrecord wordt beschreven door een WHEA_ERROR_RECORD structuur, de header van de foutrecord wordt beschreven door een WHEA_ERROR_RECORD_HEADER structuur en de beschrijvingen van de foutrecordsectie worden elk beschreven door een WHEA_ERROR_RECORD_SECTION_DESCRIPTOR structuur.
Elke foutrecordsectie kan een van de volgende sectietypen zijn:
hardwarefout pakket
Deze foutrecordsectie bevat het hardwarefoutpakket dat is doorgegeven aan het besturingssysteem door de hardwarefouthandler (LLHEH) op laag niveau die de fout heeft gerapporteerd. De gegevens in deze sectie worden beschreven door de WHEA_ERROR_PACKET structuur.
algemene processorfout
Deze foutrecordsectie bevat processorfoutgegevens die niet specifiek zijn voor een bepaalde processorarchitectuur. De gegevens in deze sectie worden beschreven door de WHEA_PROCESSOR_GENERIC_ERROR_SECTION structuur.
x86/x64-processorfout
Deze sectie met foutrecords bevat processorfoutgegevens die specifiek zijn voor de x86- of x64-processorarchitectuur. De gegevens in deze sectie worden beschreven door de WHEA_XPF_PROCESSOR_ERROR_SECTION structuur. In het volgende diagram ziet u hoe de gegevensstructuren die de processorfoutgegevens bevatten, worden opgeslagen in het lid VariableInfo.
Itanium-Processorfout
Deze foutrecordsectie bevat processorfoutgegevens die specifiek zijn voor de Itanium-processorarchitectuur. Zie de Intel Itanium Processor Family System Abstraction Layer Specificationvoor meer informatie over de indeling van de foutgegevens in deze foutrecordsectie.
Verwijzing naar error records voor Itanium-processor firmware
Deze foutrecordsectie bevat een verwijzing naar een firmwarefoutrecord die specifiek is voor de Itanium-processorarchitectuur. Deze foutrecordsectie wordt beschreven door een WHEA_FIRMWARE_ERROR_RECORD_REFERENCE structuur.
Platformgeheugenfout
Deze foutrecordsectie bevat gegevens over platformgeheugenfouten. De gegevens in deze sectie worden beschreven door de WHEA_MEMORY_ERROR_SECTION structuur.
Niet-ontmaskerbare interrupt
Deze foutrecordsectie bevat niet-ontmaskerbare interruptgegevens (NMI). De gegevens in deze sectie worden beschreven door de WHEA_NMI_ERROR_SECTION structuur.
PCI Express-fout
Deze foutrecordsectie bevat PCI Express-foutgegevens. De gegevens in deze sectie worden beschreven door de WHEA_PCIEXPRESS_ERROR_SECTION structuur.
PCI/PCI-X Bus-fout
Deze foutrecordsectie bevat PCI/PCI-X busfoutgegevens. De gegevens in deze sectie worden beschreven door de WHEA_PCIXBUS_ERROR_SECTION structuur.
PCI/PCI-X-apparaatfout
Deze foutrecordsectie bevat PCI/PCI-X apparaatfoutgegevens. De gegevens in deze sectie worden beschreven door de WHEA_PCIXDEVICE_ERROR_SECTION structuur.
Voor aanvullende hardwarefoutgegevens die niet in een van de sectietypen in de vorige lijst passen, kan een platformspecifieke foutrecordsectie worden gedefinieerd om de gegevens te bevatten. Voor elk type platformspecifieke foutrecordsectie dat is gedefinieerd, moet een bijbehorende GUID worden gedefinieerd waarmee het type foutrecordsectie wordt gedefinieerd. Deze GUID wordt opgegeven in het SectionType lid van een WHEA_ERROR_RECORD_SECTION_DESCRIPTOR structuur die dat type foutrecordsectie beschrijft.
Als er aanvullende hardwarefoutgegevens zijn die niet passen in een van de sectietypen in de vorige lijst of in een gedefinieerde sectie met platformspecifieke foutrecords, wordt een algemene sectie met foutrecords gebruikt om de gegevens te bevatten.