Udostępnij za pośrednictwem


Jak zarządzać listą pamięci analizy predykcyjnej błędów (PFA)

Za każdym razem, gdy Analiza Predykcyjnej Awarii (PFA) przewiduje, że strona pamięci z kodem korekcji błędów (ECC) prawdopodobnie ulegnie awarii w oparciu o bieżące ustawienia rejestru PFA, PFA zapisuje (lub utrzymuje) numer ramki strony (PFN) dla strony pamięci.

Począwszy od wersji 19042 systemu Windows, uszkodzone strony pamięci są przechowywane w rejestrze pod HKLM\SYSTEM\CurrentControlSet\Control\WHEA\BadPages. W poprzednich wersjach systemu Windows te informacje są przechowywane w magazynie danych konfiguracji rozruchu (BCD).

Ta lista zawiera PFN dla wszystkich stron pamięci, które PFA przewiduje jako prawdopodobne do awarii. Po uruchomieniu systemu Windows wyklucza te strony pamięci z użycia systemu.

Uwaga

Nie ma standardu branżowego mapowania PFN pamięci fizycznej na określony moduł pamięci fizycznej. W związku z tym usługa WHEA nie może podać informacji o tym, które moduły pamięci kończą się niepowodzeniem.

Po zastąpieniu uszkodzonej pamięci systemowej administrator systemu musi ręcznie wyczyścić tę listę, modyfikując rejestr lub używając narzędzia wiersza polecenia BCDEdit. Jeśli lista nie zostanie wyczyszczona, system Windows będzie nadal wykluczać strony pamięci z listy, nawet jeśli uszkodzone moduły pamięci zostały zamienione.

Na tej stronie opisano sposób wyświetlania i czyszczenia numerów ramek stron z list uszkodzonej pamięci. Aby wykonać następujące kroki, potrzebny jest wiersz polecenia z podwyższonym poziomem uprawnień:

  1. Wybierz pozycję Start, wskaż pozycję Wszystkie programy, a następnie wybierz pozycję Akcesoria.
  2. Wybierz prawym przyciskiem wiersza polecenia i wybierz pozycję Uruchom jako administrator.
  3. Jeśli zostanie wyświetlone okno dialogowe Kontrola konta użytkownika, wybierz pozycję Tak w oknie dialogowym.

Wyświetlanie numerów ramek stron (PFN) w rejestrze

Aby wyświetlić bieżącą listę PFN w rejestrze systemowym, uruchom następujące polecenie z podwyższonymi uprawnieniami w wierszu poleceń:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages

Jeśli nie przewiduje się niepowodzenia stron pamięci ECC, dane wyjściowe z polecenia reg są wyświetlane tak jak w poniższym przykładzie:

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.

Jeśli przewiduje się niepowodzenie stron pamięci ECC, klucz rejestru BadPages zawiera binarny blok, który enkapsuluje strony, jak pokazano w poniższym przykładzie:

C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WHEA
    BadPages    REG_BINARY    000000000000000058140280000000005C1B0280000000007C30038000000000E2BBFC8000000000AF52188000F00F00

Za pomocą programu PowerShell można przeanalizować dane rejestru i wyświetlić listę przy użyciu następującego skryptu:

$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
}

Czyszczenie PFN z rejestru

Aby wyczyścić listę nazw PFN w magazynie systemowym BCD, użyj następującego polecenia:

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages

Uwaga Nieprawidłowe zmiany w rejestrze mogą uniemożliwić uruchamianie systemu Windows. Dlatego przed ponownym uruchomieniem systemu Windows należy dokładnie przejrzeć polecenia i ich wyniki.

Wyświetlanie aktualnej listy PFN w magazynie systemu BCD

Listę stron pamięci zapisanych w magazynie systemu BCD można wyświetlić i usunąć przy użyciu narzędzia wiersza polecenia BCDEdit. Aby uzyskać listę opcji, których można użyć, zobacz BCDEdit Command-Line Opcje.

Aby użyć narzędzia BCDEdit, musisz być członkiem grupy Administratorzy na komputerze.

Użyj następującego polecenia w wierszu polecenia z podwyższonym poziomem uprawnień:

C:\Windows\system32>bcdedit /enum {badmemory}

Jeśli nie przewiduje się niepowodzenia stron pamięci ECC, dane wyjściowe z narzędzia BCDEdit są wyświetlane w poniższym przykładzie:

C:\Windows\system32>bcdedit /enum {badmemory}

RAM Defects
-----------
identifier              {badmemory}

Jeśli strony pamięci ECC zostaną przewidywane niepowodzeniem, {badmemory} obiekt zawiera wartość badmemorylist. Ta wartość zawiera listę PFN dla stron pamięci, które PFA przewiduje, że zawiodą, jak pokazano w poniższym przykładzie:

C:\Windows\system32>bcdedit /enum {badmemory}

RAM Defects
-----------
identifier              {badmemory}
badmemorylist           0xffe38
                        0x100f

Czyszczenie bieżącej listy PFN z magazynu systemu BCD

Aby wyczyścić listę PFN-ów w sklepie BCD, uruchom następujące polecenie:

C:\Windows\system32>bcdedit /deletevalue {badmemory} badmemorylist

Notatka

Nieprawidłowe zmiany w magazynie systemu BCD mogą uniemożliwić uruchamianie systemu Windows. Dlatego przed ponownym uruchomieniem systemu Windows należy dokładnie przejrzeć polecenia i ich wyniki.