Como gerenciar a lista de memória de Análise de Falha Preditiva (PFA)
Sempre que a PFA (análise de falha preditiva) prevê que uma página de memória ECC (código de correção de erro) provavelmente falhará com base nas configurações atuais do Registro de PFA, a PFA armazena (ou mantém) o PFN (número de quadro de página) para a página de memória.
A partir do Windows versão 19042, páginas de memória incorretas são armazenadas no Registro em HKLM\SYSTEM\CurrentControlSet\Control\WHEA\BadPages
.
Em versões anteriores do Windows, essas informações são armazenadas no repositório de sistemas BCD (dados de configuração de inicialização).
Essa lista contém os PFNs de todas as páginas de memória que a PFA previu a probabilidade de falha. Quando o Windows é iniciado, ele exclui essas páginas de memória do uso do sistema.
Nota
Não há nenhum padrão do setor para mapear um PFN de memória física para um módulo de memória física específico. Portanto, o WHEA não pode fornecer informações sobre quais módulos de memória estão falhando.
Quando a memória do sistema com falha é substituída, um administrador do sistema deve limpar essa lista manualmente atualizando o registro ou usando a ferramenta de linha de comando BCDEdit. Se a lista não estiver desmarcada, o Windows continuará excluindo as páginas de memória na lista mesmo que os módulos de memória com falha tenham sido substituídos.
Essa página descreve como exibir e limpar números de quadros de página das listas de memória incorretas. Para executar as seguintes etapas, você precisa de um prompt de comando com privilégios elevados:
- Selecione Iniciar, aponte para Todos os Programas e selecione Acessórios.
- Clique com o botão direito do mouse no Prompt de Comando e selecione Executar como administrador.
- Se a caixa de diálogo Controle de Conta de Usuário for exibida, selecione Sim na caixa de diálogo.
Exibição de PFNs (números de quadro de página) no Registro
Para exibir a lista atual de PFNs no registro do sistema, execute o seguinte comando no prompt de comando com privilégios elevados:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
Se nenhuma página de memória ECC for prevista para falhar, a saída do comando reg será exibida como no exemplo a seguir:
C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
ERROR: The system was unable to find the specified registry key or value.
Se as páginas de memória do ECC forem previstas para falhar, a chave do registro BadPages conterá um blob binário que encapsula as páginas, conforme mostrado no exemplo a seguir:
C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WHEA
BadPages REG_BINARY 000000000000000058140280000000005C1B0280000000007C30038000000000E2BBFC8000000000AF52188000F00F00
Você pode usar o PowerShell para analisar os dados do Registro e gerar uma lista usando o seguinte script:
$whea = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\WHEA"
$pages = $whea.BadPages
$idx = 0
while($idx -le $pages.Count) {
$slice = $pages[$idx..($idx+7)]
[array]::Reverse($slice)
$page = (($slice | foreach { $_.ToString("X2") }) -join "")
Write-Output $page
$idx = $idx + 8
}
Limpeza de PFNs do Registro
Para limpar a lista de PFNs no repositório do sistema BCD, use o seguinte comando:
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
Observação Alterações inadequadas no registro podem impedir que o Windows seja iniciado. Portanto, você deve examinar os comandos e seus resultados cuidadosamente antes de reiniciar o Windows.
Exibindo a lista atual de PFNs no repositório do sistema BCD
Você pode exibir e excluir a lista de páginas de memória salvas no repositório do sistema BCD usando a ferramenta de linha de comando BCDEdit. Consulte Opções de linha de comando do BCDEdit para obter a lista de opções que você pode usar.
Para usar a ferramenta BCDEdit, você deve ser membro do grupo Administradores no computador.
Use o seguinte comando no prompt de comandos com privilégios elevados:
C:\Windows\system32>bcdedit /enum {badmemory}
Se nenhuma página de memória ECC for prevista para falhar, a saída da ferramenta BCDEdit será exibida como no exemplo a seguir:
C:\Windows\system32>bcdedit /enum {badmemory}
RAM Defects
-----------
identifier {badmemory}
Se houver previsão de falha das páginas de memória ECC, o objeto {badmemory} conterá um valor badmemorylist. Esse valor contém a lista de PFNs para as páginas de memória que a PFA prevê falhar, conforme mostrado no exemplo a seguir:
C:\Windows\system32>bcdedit /enum {badmemory}
RAM Defects
-----------
identifier {badmemory}
badmemorylist 0xffe38
0x100f
Limpar a lista atual de PFNs do repositório do sistema BCD
Para limpar a lista de PFNs no repositório do sistema BCD, execute o seguinte comando:
C:\Windows\system32>bcdedit /deletevalue {badmemory} badmemorylist
Nota
Alterações inadequadas no repositório do sistema BCD podem impedir que o Windows seja iniciado. Portanto, você deve examinar os comandos e seus resultados cuidadosamente antes de reiniciar o Windows.