PSHED プラグインによって実行される PFA
プラットフォーム固有のハードウェア エラー ドライバー (PSHED) プラグインは、ECC メモリで障害予測分析 (PFA) を実行できます。 これが発生した場合、WHEA ではなくプラグインが ECC メモリ ページを監視する必要があります。 ECC メモリ ページがエラーしきい値を超えたとプラグインが判断した場合、この状態が WHEA に示されます。 その後、WHEA はメモリ ページをオフラインにしようとします。
注 PSHED プラグインが PFA を実行し、レジストリを使用して、エラーのしきい値や監視タイムアウトなどの構成設定を格納する場合、WHEA ポリシー 設定で説明されている WHEA PFA 構成設定に依存したり、使用したりしないでください。
ECC メモリ エラーが発生すると、WHEA とプラグインは次の手順を実行します。
低レベルのハードウェア エラー ハンドラー (LLHEH) には、メモリ エラー条件の存在が通知されます。
LLHEH は、エラー ソースからメモリ エラーに関する情報を取得し、エラー データを使用してハードウェア エラー パケットを完了します。 このパケットは、WHEA_ERROR_PACKET 構造として形式設定されます。
LLHEH は PSHED を呼び出し、プラットフォーム固有のハードウェア エラー情報を取得します。 PSHED プラグインがインストールされていて、エラーに関する情報を取得するよう登録されている場合、PSHED は PSHED プラグインを呼び出して、LLHEH に返されるエラーに関する情報をプラグインが変更できるようにします。
LLHEH は Windows オペレーティング システム カーネルを呼び出し、エラー パケットを渡します。
Windows カーネルはエラー レコードを作成し、LLHEH から受信したエラー パケットからの情報を追加します。 加えて、Windows カーネルは、エラー ソース、エラーの重大度、エラー レコードにエラーが発生した回数など、エラーに関するその他の情報を追加します。
Windows カーネルは PSHED を呼び出して、PSHED がエラー レコードにセクションを追加できるようにします。
PSHED プラグインがインストールされ、エラー情報を取得するよう登録されている場合、PSHED は PSHED プラグインを呼び出して、エラー レコード内の情報を変更できるようにします。
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」をご覧ください。
ECC メモリ ページをオフラインにする必要がある場合、WHEA はまずシステム メモリ マネージャーを呼び出してこの操作を実行します。
注 システム メモリ マネージャーが呼び出されると、ECC メモリ ページが実際にオフラインになる保証はありません。
次に、WHEA は、システム上のブート構成データ (BCD) ストアにメモリ ページを追加します。 これにより、次のシステムの再起動後にメモリ ページが使用されなくなります。
注 レジストリ値 DisableOffline が 0 以外の値に設定されている場合、WHEA は ECC メモリ ページなどのハードウェア コンポーネントをオフラインにしません。 さらに、レジストリ値 MemPersistOffline が 0 に設定されている場合も、WHEA はメモリ ページを BCD ストアに追加しません。 レジストリ値について詳しくは、「WHEA ポリシーの設定」をご覧ください。
システム メモリ マネージャーについて詳しくは、Windows SDK ドキュメントの「メモリ管理」をご覧ください。
- Windows カーネルは ETW イベントを生成し、エラー情報をシステム イベント ログに記録します。