Поделиться через


Управление списком памяти прогнозного анализа сбоев (PFA)

Каждый раз, когда анализ прогнозных сбоев (PFA) прогнозирует, что страница памяти кода исправления ошибок (ECC) может завершиться ошибкой на основе текущих параметров реестра PFA, PFA хранит (или сохраняет) номер кадра страницы (PFN) для страницы памяти.

Начиная с Windows версии 19042 страницы плохой памяти хранятся в реестре в разделе HKLM\SYSTEM\CurrentControlSet\Control\WHEA\BadPages. В предыдущих версиях Windows эти сведения хранятся в системном хранилище BCD.

Этот список содержит PFN для всех страниц памяти, прогнозируемых PFA, скорее всего, завершится ошибкой. При запуске Windows эти страницы памяти исключаются из системного использования.

Примечание.

В отрасли нет стандарта сопоставления физической памяти PFN с определенным модулем физической памяти. Таким образом, WHEA не может предоставить сведения о том, какие модули памяти завершаются сбоем.

При замене неработоспособных системных памяти системный администратор должен очистить этот список вручную, обновив реестр или используя средство командной строки BCDEdit. Если список не удален, Windows продолжает исключать страницы памяти в списке, даже если модули памяти не были заменены.

На этой странице описывается просмотр и очистка номеров кадров страниц из списков плохой памяти. Чтобы выполнить приведенные ниже действия, вам потребуется командная строка с повышенными привилегиями:

  1. Нажмите кнопку "Пуск", наведите указатель на все программы и выберите пункт "Аксессуары".
  2. Щелкните правой кнопкой мыши командную строку и выберите пункт Запуск от имени администратора.
  3. Если отображается диалоговое окно "Контроль учетных записей пользователей", нажмите кнопку "Да " в диалоговом окне.

Просмотр номеров кадров страниц (PFN) в реестре

Чтобы просмотреть текущий список PFN в системном реестре, выполните следующую команду из командной строки с повышенными привилегиями:

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

Если страницы памяти ECC не спрогнозированы, выходные данные из команды reg отображаются, как показано в следующем примере:

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.

Если страницы памяти ECC спрогнозированы сбоем, раздел реестра BadPages содержит двоичный большой двоичный двоичный объект, который инкапсулирует страницы, как показано в следующем примере:

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

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

PowerShell можно использовать для анализа данных реестра и вывода списка с помощью следующего сценария:

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

Очистка PFN из реестра

Чтобы очистить список PFN в системном хранилище BCD, выполните следующую команду:

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

Обратите внимание , что неправильные изменения в реестре могут препятствовать запуску Windows. Поэтому перед перезапуском Windows необходимо тщательно просмотреть команды и их результаты.

Просмотр текущего списка PFN в системном хранилище BCD

Список страниц памяти, сохраненных в системном хранилище BCD, можно просмотреть и удалить с помощью средства командной строки BCDEdit. Параметры командной строки BCDEdit см. в списке параметров, которые можно использовать.

Чтобы использовать средство BCDEdit, необходимо быть членом группы Администратор istrator на компьютере.

Используйте следующую команду из командной строки с повышенными привилегиями:

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

Если страницы памяти ECC не будут сбоем, выходные данные из средства BCDEdit отображаются в следующем примере:

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

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

Если страницы памяти ECC спрогнозированы на сбой, объект {badmemory} содержит значение badmemorylist . Это значение содержит список PFN для страниц памяти, прогнозируемых PFA, завершится сбоем, как показано в следующем примере:

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

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

Очистка текущего списка PFN из системного хранилища BCD

Чтобы очистить список PFN в системном хранилище BCD, выполните следующую команду:

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

Примечание.

Неправильные изменения в системном хранилище BCD могут предотвратить запуск Windows. Поэтому перед перезапуском Windows необходимо тщательно просмотреть команды и их результаты.