Fehlerdatensätze

Die Windows-Hardwarefehlerarchitektur (Windows Hardware Error Architecture, WHEA) verwendet ein Standardmäßiges Fehlerdatensatzformat, um alle Plattformhardwarefehler darzustellen. Daher können die Systemfirmware, das Windows-Betriebssystem und Anwendungen im Benutzermodus Hardwarefehlerberichterstattung und Wiederherstellungsmechanismen entwerfen, die alle auf demselben Fehlerdatensatzformat basieren.

Das Format der von WHEA verwendeten Fehlerdatensätze basiert auf dem Common Platform Error Record (CPER), wie in Anhang N der Version 2.2 der UEFI-Spezifikation (Unified Extensible Firmware Interface) beschrieben.

Das folgende Diagramm zeigt das allgemeine Format eines Fehlerdatensatzes.

Diagramm, das das allgemeine Format eines Fehlerdatensatzes veranschaulicht.

Ein Fehlerdatensatz besteht aus einem Fehlerdatensatzheader, gefolgt von mindestens einem Fehlerdatensatzabschnittsdeskriptor mit fester Länge. Für jeden Fehlerdatensatzabschnittsdeskriptor gibt es einen zugeordneten Fehlerdatensatzabschnitt mit variabler Länge, der entweder Fehlerdaten oder Informationsdaten enthält. Ein Fehlerdatensatz muss mindestens einen Fehlerdatensatzabschnitt enthalten.

Ein Fehlerdatensatz kann zusätzlichen Pufferspeicher für das dynamische Hinzufügen von Fehlerdatensatzabschnitten und Abschnittsdeskriptoren enthalten. Der zusätzliche Pufferspeicher kann auch verwendet werden, um die Größe vorhandener Fehlerdatensatzabschnitte dynamisch zu erhöhen.

Ein Fehlerdatensatz wird durch eine WHEA_ERROR_RECORD-Struktur beschrieben, der Fehlerdatensatzheader wird durch eine WHEA_ERROR_RECORD_HEADER-Struktur beschrieben, und die Fehlerdatensatzabschnittsdeskriptoren werden jeweils durch eine WHEA_ERROR_RECORD_SECTION_DESCRIPTOR-Struktur beschrieben.

Jeder Fehlerdatensatzabschnitt kann einen der folgenden Abschnittstypen aufweisen:

Hardwarefehlerpaket
Dieser Fehlerdatensatzabschnitt enthält das Hardwarefehlerpaket, das vom Low-Level-Hardwarefehlerhandler (LLHEH), der den Fehler gemeldet hat, an das Betriebssystem übergeben wurde. Die in diesem Abschnitt enthaltenen Daten werden durch die WHEA_ERROR_PACKET-Struktur beschrieben.

Generischer Prozessorfehler
Dieser Fehlerdatensatzabschnitt enthält Prozessorfehlerdaten, die nicht für eine bestimmte Prozessorarchitektur spezifisch sind. Die in diesem Abschnitt enthaltenen Daten werden durch die WHEA_PROCESSOR_GENERIC_ERROR_SECTION-Struktur beschrieben.

x86/x64-Prozessorfehler
Dieser Fehlerdatensatzabschnitt enthält Prozessorfehlerdaten, die für die x86- oder x64-Prozessorarchitektur spezifisch sind. Die in diesem Abschnitt enthaltenen Daten werden in der WHEA_XPF_PROCESSOR_ERROR_SECTION-Struktur beschrieben. Das folgende Diagramm zeigt, wie die Datenstrukturen, die die Prozessorfehlerdaten enthalten, im VariableInfo-Member gespeichert werden.

Prozessorfehlerdaten.

Itanium-Prozessorfehler
Dieser Fehlerdatensatzabschnitt enthält Prozessorfehlerdaten, die für die Itanium-Prozessorarchitektur spezifisch sind. Weitere Informationen zum Format der Fehlerdaten, die in diesem Fehlerdatensatz enthalten sind, finden Sie in der Intel Itanium Processor Family System Abstraction Layer Specification.

Referenz zu Itaniumprozessor-Firmwarefehlerdatensätzen
Dieser Fehlerdatensatzabschnitt enthält einen Verweis auf einen Firmwarefehlerdatensatz, der für die Itanium-Prozessorarchitektur spezifisch ist. Dieser Fehlerdatensatzabschnitt wird durch eine WHEA_FIRMWARE_ERROR_RECORD_REFERENCE-Struktur beschrieben.

Plattformspeicherfehler
Dieser Fehlerdatensatzabschnitt enthält Fehlerdaten des Plattformspeichers. Die in diesem Abschnitt enthaltenen Daten werden in der WHEA_MEMORY_ERROR_SECTION-Struktur beschrieben.

Nichtmaskierbarer Interrupt
Dieser Fehlerdatensatzabschnitt enthält nicht maskierbare Interruptdaten (NMI). Die in diesem Abschnitt enthaltenen Daten werden in der WHEA_NMI_ERROR_SECTION-Struktur beschrieben.

PCI Express-Fehler
Dieser Fehlerdatensatzabschnitt enthält PCI Express-Fehlerdaten. Die in diesem Abschnitt enthaltenen Daten werden durch die WHEA_PCIEXPRESS_ERROR_SECTION-Struktur beschrieben.

PCI/PCI-X-Busfehler
Dieser Fehlerdatensatzabschnitt enthält PCI/PCI-X-Busfehlerdaten. Die in diesem Abschnitt enthaltenen Daten werden durch die WHEA_PCIXBUS_ERROR_SECTION-Struktur beschrieben.

PCI/PCI-X-Gerätefehler
Dieser Fehlerdatensatzabschnitt enthält PCI/PCI-X-Gerätefehlerdaten. Die in diesem Abschnitt enthaltenen Daten werden durch die WHEA_PCIXDEVICE_ERROR_SECTION-Struktur beschrieben.

Für zusätzliche Hardwarefehlerdaten, die nicht in einen der Abschnittstypen in der vorherigen Liste passen, kann ein plattformspezifischer Fehlerdatensatzabschnitt definiert werden, der die Daten enthält. Für jeden typspezifischen Fehlerdatensatzabschnitt, der definiert wird, muss eine entsprechende GUID definiert werden, die den Typ des Fehlerdatensatzabschnitts identifiziert. Diese GUID wird im SectionType-Member einer beliebigen WHEA_ERROR_RECORD_SECTION_DESCRIPTOR-Struktur angegeben, die diesen Typ des Fehlerdatensatzabschnitts beschreibt.

Wenn zusätzliche Hardwarefehlerdaten vorhanden sind, die nicht in einen der Abschnittstypen in der vorherigen Liste oder in einen definierten plattformspezifischen Fehlerdatensatzabschnitt passen, wird ein generischer Fehlerdatensatzabschnitt verwendet, um die Daten zu enthalten.