Rekordy błędów
Architektura błędów sprzętu systemu Windows (WHEA) używa standardowego formatu rekordu błędu do reprezentowania wszystkich błędów sprzętowych platformy. W związku z tym oprogramowanie układowe systemu, system operacyjny Windows i aplikacje w trybie użytkownika mogą projektować sprzętowe mechanizmy raportowania błędów i odzyskiwania, które są oparte na tym samym formacie rekordu błędu.
Format rekordów błędów używanych przez usługę WHEA jest oparty na common platform error record (CPER) zgodnie z opisem w dodatku N wersji 2.2 specyfikacji ujednoliconego oprogramowania układowego (UEFI) .
Na poniższym diagramie przedstawiono ogólny format rekordu błędu.
Rekord błędu składa się z nagłówka rekordu błędu, po którym następuje jeden lub więcej deskryptorów sekcji rekordu błędu o stałej długości. Dla każdego deskryptora sekcji rekordów błędów istnieje skojarzona sekcja rekordu błędu o zmiennej długości, która zawiera dane o błędach lub dane informacyjne. Rekord błędu musi zawierać co najmniej jedną sekcję rekordu błędu.
Rekord błędu może zawierać dodatkowe miejsce buforu dla dynamicznego dodawania sekcji rekordów błędów i deskryptorów sekcji. Dodatkowe miejsce buforu może również służyć do dynamicznego zwiększania rozmiaru istniejących sekcji rekordów błędów.
Rekord błędu jest opisany przez strukturę WHEA_ERROR_RECORD, nagłówek rekordu błędu jest opisywany przez strukturę WHEA_ERROR_RECORD_HEADER, a deskryptory sekcji rekordów błędów są opisane przez WHEA_ERROR_RECORD_SECTION_DESCRIPTOR struktury.
Każda sekcja rekordu błędu może być jednym z następujących typów sekcji:
pakiet błędów sprzętu
Ta sekcja rekordu błędu zawiera pakiet błędów sprzętu przekazany do systemu operacyjnego przez program obsługi błędów sprzętu niskiego poziomu (LLHEH), który zgłosił błąd. Dane zawarte w tej sekcji są opisane w strukturze WHEA_ERROR_PACKET.
błąd procesora ogólnego
Ta sekcja rekordu błędu zawiera dane o błędach procesora, które nie są specyficzne dla konkretnej architektury procesora. Dane zawarte w tej sekcji są opisane w strukturze WHEA_PROCESSOR_GENERIC_ERROR_SECTION.
błąd procesora x86/x64
Ta sekcja rekordu błędu zawiera dane o błędach procesora specyficzne dla architektury procesora x86 lub x64. Dane zawarte w tej sekcji są opisane przez strukturę WHEA_XPF_PROCESSOR_ERROR_SECTION. Na poniższym diagramie pokazano, w jaki sposób struktury danych zawierające dane błędu procesora są przechowywane w elemencie VariableInfo.
błąd procesora itanium
Ta sekcja rekordu błędu zawiera dane o błędach procesora specyficzne dla architektury procesora Itanium. Aby uzyskać więcej informacji na temat formatu danych o błędach zawartych w tej sekcji rekordu błędu, zobacz Specyfikację warstwy abstrakcji systemu dla rodziny procesorów Itanium firmy Intel .
dokumentacja rekordów błędów oprogramowania układowego procesora Itanium
Ta sekcja rekordu błędu zawiera odwołanie do rekordu błędu oprogramowania układowego specyficznego dla architektury procesora Itanium. Ta sekcja rekordu błędu jest opisana przez strukturę WHEA_FIRMWARE_ERROR_RECORD_REFERENCE.
Błąd pamięci platformy
Ta sekcja rekordu błędu zawiera dane o błędach pamięci platformy. Dane zawarte w tej sekcji są opisane w strukturze WHEA_MEMORY_ERROR_SECTION.
niemaskowalne przerwanie
Ta sekcja rekordu błędu zawiera dane niemaskowalnego przerwania (NMI). Dane zawarte w tej sekcji są opisane w strukturze WHEA_NMI_ERROR_SECTION.
błąd PCI Express
Ta sekcja rekordu błędu zawiera dane błędów PCI Express. Dane zawarte w tej sekcji są opisane w strukturze WHEA_PCIEXPRESS_ERROR_SECTION.
Błąd magistrali PCI/PCI-X
Ta sekcja rekordu błędu zawiera dane błędów magistrali PCI/PCI-X. Dane zawarte w tej sekcji są opisane w strukturze WHEA_PCIXBUS_ERROR_SECTION.
PCI/PCI-X Błąd urządzenia
Ta sekcja rekordu błędów zawiera dane o błędach urządzenia PCI/PCI-X. Dane zawarte w tej sekcji są opisane przez strukturę WHEA_PCIXDEVICE_ERROR_SECTION.
W przypadku dodatkowych danych o błędach sprzętowych, które nie mieszczą się w jednym z typów sekcji na poprzedniej liście, można zdefiniować sekcję rekordu błędów specyficzną dla platformy, aby zawierała dane. Dla każdego typu zdefiniowanej sekcji rekordu błędu specyficznego dla platformy należy zdefiniować odpowiedni identyfikator GUID identyfikujący typ sekcji rekordu błędu. Ten identyfikator GUID jest określony w składowej SectionType dowolnej struktury WHEA_ERROR_RECORD_SECTION_DESCRIPTOR opisujących ten typ sekcji rekordu błędu.
Jeśli istnieją dodatkowe dane o błędach sprzętu, które nie mieszczą się w jednej z typów sekcji na poprzedniej liście lub w zdefiniowanej sekcji rekordu błędu specyficznego dla platformy, ogólna sekcja rekordu błędów jest używana do przechowywania danych.