PFA Executada por um Plug-In PSHED
Um plug-in PSHED (driver de erro de hardware) específico da plataforma pode executar a PFA (Análise de Falha Preditiva) na memória ECC. Quando isso ocorre, o plug-in e não o WHEA devem monitorar páginas de memória ECC. Se o plug-in determinar que uma página de memória ECC excedeu um limite de erro, isso indicará que esse status ao WHEA. O WHEA tenta colocar a página de memória offline.
Nota Se o plug-in PSHED executar o PFA e usar o registro para armazenar suas configurações, como limites de erro e tempos limite de monitoramento, ele não deverá depender nem usar as configurações do WHEA PFA descritas nas Configurações de Política do WHEA.
Quando ocorre um erro de memória ECC, o WHEA e o plug-in executam as seguintes etapas:
O LLHEH (manipulador de erros de hardware) de baixo nível é notificado sobre a presença da condição de erro de memória.
O LLHEH recupera informações sobre o erro de memória da origem do erro e usa os dados de erro para concluir um pacote de erro de hardware. Esse pacote é formatado como uma estrutura WHEA_ERROR_PACKET .
O LLHEH chama o PSHED para recuperar quaisquer informações de erro de hardware específicas da plataforma. Se um plug-in PSHED estiver instalado e registrado para recuperar informações sobre erros, o PSHED chamará o plug-in PSHED para que o plug-in possa modificar as informações sobre o erro retornado ao LLHEH.
O LLHEH chama o kernel do sistema operacional Windows e passa o pacote de erro.
O kernel do Windows cria um registro de erro e adiciona a ele as informações do pacote de erro que foi recebido do LLHEH. Além disso, o kernel do Windows adiciona outras informações sobre o erro, como a origem do erro, a gravidade do erro e quantas vezes o erro ocorreu no registro de erro.
O kernel do Windows chama o PSHED para permitir que o PSHED adicione seções ao registro de erro.
Se um plug-in PSHED estiver instalado e for registrado para recuperar informações de erro, o PSHED chamará o plug-in PSHED para que ele possa modificar as informações no registro de erro.
Se o plug-in PSHED estiver executando PFA na página memória ECC, ele deverá fazer o seguinte:
- Defina o bit PlatformPfaControl no membro WHEA_ERROR_PACKET_FLAGS da estrutura WHEA_ERROR_PACKET . Se esse bit estiver definido, o WHEA não será mais responsável pelo PFA nessa página de memória.
- Se o plug-in determinar que a página de memória ECC que encontrou o erro deve ser retirada offline, defina o bit PlatformDirectedOffline no membro WHEA_ERROR_PACKET_FLAGS . Se esse bit estiver definido, o WHEA tentará colocar a página de memória offline.
Caso contrário, o plug-in PSHED deverá limpar os bits PlatformPfaControl e PlatformDirectedOffline no membro WHEA_ERROR_PACKET_FLAGS da estrutura WHEA_ERROR_PACKET .
Nota Se o bit PlatformPfaControl estiver limpo, o WHEA executará PFA se estiver configurado para fazer isso e determinará se a página de memória ECC que encontrou o erro deve ser retirada offline. Para obter mais informações sobre esse processo, consulte PFA Realizado pelo WHEA.
Se a página de memória ECC precisar ser offline, o WHEA primeiro chamará o gerenciador de memória do sistema para executar essa operação.
Nota Quando o gerenciador de memória do sistema é chamado, não há nenhuma garantia de que a página de memória ECC será realmente retirada offline.
Em seguida, o WHEA adiciona a página de memória ao repositório BCD (Dados de Configuração de Inicialização) no sistema. Isso impede que a página de memória seja usada após a próxima reinicialização do sistema.
Nota O WHEA não usará um componente de hardware, como uma página de memória ECC, offline se o valor do Registro DisableOffline for definido como um valor diferente de zero. Além disso, o WHEA não adicionará a página de memória ao repositório BCD se o valor do registro MemPersistOffline estiver definido como 0. Para obter mais informações sobre os valores do Registro, consulte Configurações de Política do WHEA.
Para obter mais informações sobre o gerenciador de memória do sistema, consulte Gerenciamento de memória na documentação do SDK do Windows.
- O kernel do Windows gera um evento ETW e registra as informações de erro no log de eventos do sistema.