次の方法で共有


PSHED プラグインによって実行される PFA

プラットフォーム固有のハードウェア エラー ドライバー (PSHED) プラグインは、ECC メモリで障害予測分析 (PFA) を実行できます。 これが発生した場合、WHEA ではなくプラグインが ECC メモリ ページを監視する必要があります。 ECC メモリ ページがエラーしきい値を超えたとプラグインが判断した場合、この状態が WHEA に示されます。 その後、WHEA はメモリ ページをオフラインにしようとします。

PSHED プラグインが PFA を実行し、レジストリを使用して、エラーのしきい値や監視タイムアウトなどの構成設定を格納する場合、WHEA ポリシー 設定で説明されている WHEA PFA 構成設定に依存したり、使用したりしないでください。

ECC メモリ エラーが発生すると、WHEA とプラグインは次の手順を実行します。

  1. 低レベルのハードウェア エラー ハンドラー (LLHEH) には、メモリ エラー条件の存在が通知されます。

  2. LLHEH は、エラー ソースからメモリ エラーに関する情報を取得し、エラー データを使用してハードウェア エラー パケットを完了します。 このパケットは、WHEA_ERROR_PACKET 構造として形式設定されます。

  3. LLHEH は PSHED を呼び出し、プラットフォーム固有のハードウェア エラー情報を取得します。 PSHED プラグインがインストールされていて、エラーに関する情報を取得するよう登録されている場合、PSHED は PSHED プラグインを呼び出して、LLHEH に返されるエラーに関する情報をプラグインが変更できるようにします。

  4. LLHEH は Windows オペレーティング システム カーネルを呼び出し、エラー パケットを渡します。

  5. Windows カーネルはエラー レコードを作成し、LLHEH から受信したエラー パケットからの情報を追加します。 加えて、Windows カーネルは、エラー ソース、エラーの重大度、エラー レコードにエラーが発生した回数など、エラーに関するその他の情報を追加します。

  6. Windows カーネルは PSHED を呼び出して、PSHED がエラー レコードにセクションを追加できるようにします。

  7. PSHED プラグインがインストールされ、エラー情報を取得するよう登録されている場合、PSHED は PSHED プラグインを呼び出して、エラー レコード内の情報を変更できるようにします。

  8. PSHED プラグインが ECC メモリ ページで PFA を実行している場合、次の操作を行う必要があります。

    • WHEA_ERROR_PACKET 構造の WHEA_ERROR_PACKET_FLAGS メンバーに PlatformPfaControl ビットを設定します。 このビットが設定されている場合、WHEA はそのメモリ ページで PFA を処理しなくなります。
    • エラーが発生した ECC メモリ ページをオフラインにする必要があるとプラグインが判断した場合、WHEA_ERROR_PACKET_FLAGS メンバーで PlatformDirectedOffline ビットを設定します。 このビットが設定されている場合、WHEA はメモリ ページをオフラインにしようとします。

    それ以外の場合、PSHED プラグインは、WHEA_ERROR_PACKET 構造の WHEA_ERROR_PACKET_FLAGS メンバーの PlatformPfaControl ビットと PlatformDirectedOffline ビットをクリアする必要があります。

    PlatformPfaControl ビットがクリアされた場合、WHEA が PFA を実行するように構成されていれば、エラーが発生した ECC メモリ ページをオフラインにする必要があるかどうかを判断します。 このプロセスについて詳しくは、「WHEA によって実行される PFA」をご覧ください。

  9. ECC メモリ ページをオフラインにする必要がある場合、WHEA はまずシステム メモリ マネージャーを呼び出してこの操作を実行します。

    システム メモリ マネージャーが呼び出されると、ECC メモリ ページが実際にオフラインになる保証はありません。

次に、WHEA は、システム上のブート構成データ (BCD) ストアにメモリ ページを追加します。 これにより、次のシステムの再起動後にメモリ ページが使用されなくなります。

レジストリ値 DisableOffline が 0 以外の値に設定されている場合、WHEA は ECC メモリ ページなどのハードウェア コンポーネントをオフラインにしません。 さらに、レジストリ値 MemPersistOffline が 0 に設定されている場合も、WHEA はメモリ ページを BCD ストアに追加しません。 レジストリ値について詳しくは、「WHEA ポリシーの設定」をご覧ください。

システム メモリ マネージャーについて詳しくは、Windows SDK ドキュメントの「メモリ管理」をご覧ください。

  1. Windows カーネルは ETW イベントを生成し、エラー情報をシステム イベント ログに記録します。