Compartilhar via


Componentes da arquitetura de erro de hardware do Windows

O diagrama a seguir mostra os principais componentes da WHEA (Arquitetura de Erro de Hardware do Windows).

diagrama ilustrando relações entre um driver de alteração, aplicativos e serviços no modo de usuário, drivers de armazenamento em massa e portas e um dispositivo alterador.

Para cada fonte de erro de hardware descoberta pelo sistema operacional, há um LLHEH ( manipulador de erros de hardware) de baixo nível correspondente. Um LLHEH é o primeiro código do sistema operacional 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 invocada pelo firmware do sistema. Cada LLHEH é implementado no módulo de software mais apropriado: para os ônibus de E/S, eles existem em seus respectivos motoristas de ônibus; para manipuladores de interceptação de plataforma, eles existem no kernel do sistema operacional ou na HAL (camada de abstração de hardware).

Cada LLHEH executa as seguintes tarefas:

  • Reconhece o erro de hardware.

  • Captura as informações de erro disponíveis relacionadas ao erro de hardware.

  • Relata a condição de erro de hardware para o sistema operacional.

Normalmente, os LLHEHs interagem diretamente com o hardware e o firmware para recuperar informações de erro de hardware. OS 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.

Os LLHEHs e o kernel do Windows se baseiam nos serviços do PSHED ( driver de erro de hardware) específico da plataforma para coletar informações de erro específicas da plataforma. O PSHED fornece uma abstração das instalações 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 lida com a interfiguração com o firmware. Isso permite que os componentes principais do Windows acessem apenas o erro status registros considerados arquitetônicos, fornecendo também um mecanismo por meio do qual informações de erro de hardware mais detalhadas e mais 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 plataforma 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 Windows de finalidade especial que implementa uma interface de retorno de chamada que é chamada pelo PSHED. A finalidade 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 por fornecedores de plataforma como uma interface de software para os recursos de recuperação e relatório de erros de hardware da plataforma de hardware. Um plug-in PSHED pode fazer a interface 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 recursos de recuperação e relatório de erros de hardware sejam padronizados. Portanto, a necessidade de plug-ins PSHED para tratamento geral de erros e relatórios diminuirá de modo que os plug-ins PSHED só serão necessários para dar suporte a 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 Plug-ins do Driver de Erro de Hardware Específico da Plataforma.

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 informações adicionais de erro de hardware ao registro de erro para descrever melhor a condição de erro de hardware. Se um plug-in PSHED estiver instalado e estiver registrado para participar da recuperação de informações de erro, o PSHED, por sua vez, chamará para o plug-in PSHED para que ele possa aumentar ainda mais 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 do modo de usuário ao gerar um evento ETW (Rastreamento de Eventos para 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 nem notifica os aplicativos do modo de usuário até que o sistema seja reiniciado. Portanto, o sistema operacional deve salvar o registro de erro em alguma forma de armazenamento não potencial antes de reiniciar o sistema. O PSHED fornece uma interface por meio 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 estiver registrado para participar da persistência de registro de erro, o plug-in PSHED poderá fornecer uma implementação específica da plataforma para armazenar e recuperar registros 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 do 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 de origem de erro 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, confira Aplicativos de gerenciamento whea.