Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O diagrama a seguir mostra os principais componentes da arquitetura de erro de hardware do Windows (WHEA).
Para cada fonte de erro de hardware descoberta pelo sistema operacional, há um manipulador de erros de hardware de baixo nível (LLHEH) correspondente. Um LLHEH é o primeiro código do sistema operacional que é executado em resposta a uma condição de erro de hardware. Um LLHEH pode ser um manipulador de interrupção, um manipulador de exceção, uma rotina de sondagem ou uma rotina de retorno de chamada que é invocada pelo firmware do sistema. Cada LLHEH é implementado no módulo de software mais apropriado: para barramentos de E/S, eles existem nos seus respetivos controladores de barramento; para gestores de exceções de plataforma, eles existem no kernel do sistema operativo ou na camada de abstração de hardware (HAL).
Cada LLHEH executa as seguintes tarefas:
Reconhece o erro de hardware.
Captura as informações de erro disponíveis relacionadas ao erro de hardware.
Reporta a condição de erro de hardware ao sistema operativo.
Normalmente, LLHEHs interagem diretamente com o hardware e firmware para recuperar informações de erro de hardware. LLHEHs compilam todas as informações relacionadas a um erro de hardware em um pacote de erro de hardware. Em situações em que o firmware processa inicialmente um erro de hardware, o LLHEH correspondente interage com o firmware para recuperar o pacote de erro. Todos os LLHEHs relatam erros de hardware para o kernel do sistema operacional Windows passando os dados do pacote de erro de hardware para uma função comum de relatório de erros.
Tanto os LLHEHs quanto o kernel do Windows utilizam os serviços do driver de erro de hardware específico da plataforma (PSHED) para coletar informações de erro específicas da plataforma. O PSHED fornece uma abstração dos recursos de relatório de erros de hardware da plataforma subjacente, ocultando os detalhes dos mecanismos de tratamento de erros de uma plataforma do sistema operacional e expondo uma interface consistente ao sistema operacional Windows. Em plataformas que envolvem uma interface de firmware do sistema para recursos de tratamento de erros de hardware, o PSHED gere a interação com o firmware. Isso permite que os principais componentes do Windows acessem apenas os registros de status de erro que são considerados arquiteturais, ao mesmo tempo em que fornece um mecanismo através do qual informações de erro de hardware específicas da plataforma mais ricas e detalhadas podem ser obtidas.
Para cada arquitetura de processador (x86, x64 e Itanium), a Microsoft fornece um PSHED que implementa o comportamento principal de tratamento de erros que é comum a essa arquitetura. Os fornecedores de plataformas podem complementar a funcionalidade PSHED padrão fornecendo plug-ins PSHED que aproveitam os recursos específicos da plataforma. Um plug-in PSHED é um driver de dispositivo do Windows com uma finalidade específica, que implementa uma interface de retorno de chamada utilizada pelo PSHED. O objetivo de um plug-in PSHED é aumentar ou substituir o comportamento padrão do PSHED fornecido pela Microsoft.
Um plug-in PSHED destina-se a ser implementado como uma interface de software pelos fornecedores de plataforma para os recursos de relatório e recuperação de erros de hardware da plataforma de hardware. Um plug-in PSHED pode interagir com o firmware da plataforma usando quaisquer interfaces ou mecanismos privados definidos pelo fornecedor da plataforma. Isso permite que o fornecedor da plataforma continue usando o firmware existente para tratamento de erros de hardware. Com o tempo, a Microsoft espera que mais relatórios de erros de hardware e recursos de recuperação sejam padronizados. Portanto, a necessidade de plug-ins PSHED para tratamento de erros gerais e relatórios diminuirá de tal forma que os plug-ins PSHED só serão necessários para suportar recursos específicos do fornecedor que fornecem valor adicional além da funcionalidade padrão de tratamento de erros de hardware.
Para obter mais informações sobre como implementar um plug-in PSHED, consulte Platform-Specific Plug-ins de driver de erro de hardware.
Após a notificação por um LLHEH de uma condição de erro de hardware, o Windows cria um registro de erro em um formato padronizado que descreve a condição de erro de hardware. Em seguida, o Windows chama o PSHED para que ele possa adicionar qualquer informação de erro de hardware adicional ao registro de erro para descrever melhor a condição de erro de hardware. Se um plug-in PSHED estiver instalado e registado para participar na recuperação de informações de erro, o PSHED subsequentemente invocará o plug-in PSHED para que ele possa complementar as informações no registro de erro. Depois que o Windows compila todas as informações de erro de hardware no registro de erro, ele registra as informações de erro no log de eventos do sistema e notifica os aplicativos de modo de usuário gerando um evento ETW (Event Tracing for Windows).
Sob determinadas condições de erro de hardware, o sistema operacional é forçado a reiniciar o sistema para se recuperar do erro. Nessas situações, o Windows não registra as informações de erro no log de eventos do sistema ou notifica os aplicativos de modo de usuário até que o sistema tenha sido reiniciado. Portanto, o sistema operacional deve salvar o registro de erro em alguma forma de armazenamento não volátil antes de reiniciar o sistema. O PSHED fornece uma interface através da qual o sistema operacional pode armazenar e recuperar um registro de erro para que as informações de erro sejam preservadas durante a reinicialização do sistema. Se um plug-in PSHED estiver instalado e registado para participar na persistência dos registos de erro, o plug-in PSHED pode fornecer uma implementação específica da plataforma para armazenar e recuperar registos de erro. Quando o sistema é reiniciado, o sistema operacional recupera o registro de erro salvo para que ele possa ser registrado corretamente no log de eventos do sistema e os aplicativos de modo de usuário possam ser notificados.
Para obter mais informações sobre como o WHEA processa erros de hardware, consulte Processamento de erros.
O Windows também fornece uma API de gerenciamento de erros de hardware para que os aplicativos de gerenciamento de erros no modo de usuário possam definir e recuperar informações da fonte de erros de hardware, configurar o tratamento de erros para uma fonte de erro específica e injetar erros de hardware na plataforma de hardware para fins de teste.
Para obter mais informações sobre como implementar um aplicativo de gerenciamento WHEA, consulte Aplicativos de gerenciamento WHEA.