次の方法で共有


予測エラー分析 (PFA) メモリ一覧を管理する方法

予測エラー分析 (PFA) で、現在の PFA レジストリ設定に基づいてエラー修正コード (ECC) メモリ ページが失敗する可能性が高いと予測されるたびに、PFA はメモリ ページのページ フレーム番号 (PFN) を格納 (または 保持) します。

Windows バージョン 19042 以降では、無効なメモリ ページはレジストリの HKLM\SYSTEM\CurrentControlSet\Control\WHEA\BadPagesの下に格納されます。 以前のバージョンの Windows では、この情報はブート構成データ (BCD) システム ストアに格納されています。

この一覧には、PFA が失敗する可能性が高いと予測されたすべてのメモリ ページの PFN が含まれています。 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 レジストリ キーには、次の例に示すように、ページをカプセル化するバイナリ BLOB が含まれます。

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をクリアする

BCD システム ストア内の PFN の一覧をクリアするには、次のコマンドを使用します。

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

レジストリ 不適切な変更により、Windows が起動できなくなる可能性があることに注意してください。 そのため、Windows を再起動する前に、コマンドとその結果を慎重に確認する必要があります。

BCD システム ストア内の PFN の現在の一覧を表示する

BCDEdit コマンド ライン ツールを使用すると、BCD システム ストアに保存されているメモリ ページの一覧を表示および削除できます。 使用できるオプション 一覧については、「BCDEdit Command-Line オプションの」を参照してください。

BCDEdit ツールを使用するには、コンピューターの Administrators グループのメンバーである必要があります。

管理者特権でのコマンド プロンプトから次のコマンドを使用します。

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

ECC メモリ ページが失敗すると予測されない場合、BCDEdit ツールからの出力は次の例のように表示されます。

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

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

ECC メモリ ページが失敗すると予測された場合、{badmemory} オブジェクトには、badmemorylist 値が含まれます。 この値には、次の例に示すように、PFA が失敗すると予測されるメモリ ページの PFN の一覧が含まれています。

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

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

BCD システム ストアから PFN の現在のリストをクリアする

BCD システム ストア内の PFN の一覧をクリアするには、次のコマンドを実行します。

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

手記

BCD システム ストアを不適切に変更すると、Windows が起動できなくなる可能性があります。 そのため、Windows を再起動する前に、コマンドとその結果を慎重に確認する必要があります。