Registros de erro
A WHEA (Arquitetura de Erro de Hardware do Windows) usa um formato de registro de erro padrão para representar todos os erros de hardware da plataforma. Como resultado, o firmware do sistema, o sistema operacional Windows e os aplicativos do modo de usuário podem criar mecanismos de recuperação e relatório de erros de hardware com base no mesmo formato de registro de erro.
O formato dos registros de erro usados pelo WHEA baseia-se no CPER (Common Platform Error Record), conforme descrito no Apêndice N da versão 2.2 da Especificação da UEFI (Unified Extensible Firmware Interface).
O diagrama a seguir mostra o formato geral de um registro de erro.
Um registro de erro consiste em um cabeçalho de registro de erro seguido por um ou mais descritores de seção de registro de erro de comprimento fixo. Para cada descritor de seção de registro de erro, há uma seção de registro de erro de comprimento variável associada que contém dados de erro ou dados informativos. Um registro de erro deve conter pelo menos uma seção de registro de erro.
Um registro de erro pode incluir espaço de buffer extra para a adição dinâmica de seções de registro de erro e descritores de seção. O espaço extra do buffer também pode ser usado para aumentar dinamicamente o tamanho das seções de registro de erro existentes.
Um registro de erro é descrito por uma estrutura WHEA_ERROR_RECORD , o cabeçalho do registro de erro é descrito por uma estrutura WHEA_ERROR_RECORD_HEADER e os descritores da seção de registro de erro são descritos por uma estrutura WHEA_ERROR_RECORD_SECTION_DESCRIPTOR .
Cada seção de registro de erro pode ser um dos seguintes tipos de seção:
Pacote de erro de hardware
Esta seção de registro de erro contém o pacote de erro de hardware que foi passado para o sistema operacional pelo LLHEH (manipulador de erros de hardware) de baixo nível que relatou o erro. Os dados contidos nesta seção são descritos pela estrutura WHEA_ERROR_PACKET .
Erro de processador genérico
Esta seção de registro de erro contém dados de erro do processador que não são específicos para uma arquitetura de processador específica. Os dados contidos nesta seção são descritos pela estrutura WHEA_PROCESSOR_GENERIC_ERROR_SECTION .
Erro do processador x86/x64
Esta seção de registro de erro contém dados de erro do processador específicos para a arquitetura do processador x86 ou x64. Os dados contidos nesta seção são descritos pela estrutura WHEA_XPF_PROCESSOR_ERROR_SECTION . O diagrama a seguir mostra como as estruturas de dados que contêm os dados de erro do processador são armazenadas no membro VariableInfo.
Erro do processador itanium
Esta seção de registro de erro contém dados de erro do processador específicos para a arquitetura do processador Itanium. Para obter mais informações sobre o formato dos dados de erro contidos nesta seção de registro de erro, consulte a Especificação da Camada de Abstração do Sistema de Família do Processador Intel Itanium.
Referência de registro de erro do firmware do processador itanium
Esta seção de registro de erro contém uma referência a um registro de erro de firmware específico para a arquitetura do processador itanium. Esta seção de registro de erro é descrita por uma estrutura de WHEA_FIRMWARE_ERROR_RECORD_REFERENCE .
Erro de memória da plataforma
Esta seção de registro de erro contém dados de erro de memória da plataforma. Os dados contidos nesta seção são descritos pela estrutura WHEA_MEMORY_ERROR_SECTION .
Interrupção nãomaskável
Esta seção de registro de erro contém dados de NMI (interrupção nãomaskável). Os dados contidos nesta seção são descritos pela estrutura WHEA_NMI_ERROR_SECTION .
Erro do PCI Express
Esta seção de registro de erro contém dados de erro do PCI Express. Os dados contidos nesta seção são descritos pela estrutura WHEA_PCIEXPRESS_ERROR_SECTION .
Erro de barramento PCI/PCI-X
Esta seção de registro de erro contém dados de erro de barramento PCI/PCI-X. Os dados contidos nesta seção são descritos pela estrutura WHEA_PCIXBUS_ERROR_SECTION .
Erro de dispositivo PCI/PCI-X
Esta seção de registro de erro contém dados de erro do dispositivo PCI/PCI-X. Os dados contidos nesta seção são descritos pela estrutura WHEA_PCIXDEVICE_ERROR_SECTION .
Para dados de erro de hardware adicionais que não se encaixam em um dos tipos de seção na lista anterior, uma seção de registro de erro específica da plataforma pode ser definida para conter os dados. Para cada tipo de seção de registro de erro específica da plataforma definida, um GUID correspondente que identifica o tipo da seção de registro de erro deve ser definido. Esse GUID é especificado no membro SectionType de qualquer estrutura WHEA_ERROR_RECORD_SECTION_DESCRIPTOR que descreve esse tipo de seção de registro de erro.
Se houver dados de erro de hardware adicionais que não se encaixam em um dos tipos de seção na lista anterior ou em uma seção de registro de erro específica da plataforma definida, uma seção de registro de erro genérico será usada para conter os dados.