Share via


エラー レコード

Windows ハードウェア エラー アーキテクチャ (WHEA) は、標準のエラー レコード形式を使用してすべてのプラットフォーム ハードウェア エラーを表します。 その結果、システム ファームウェア、Windows オペレーティング システム、ユーザー モード アプリケーションは、すべて同じエラー レコード形式に基づくハードウェア エラー報告と回復メカニズムを設計できます。

WHEA で使用されるエラー レコードの形式は、「Unified Extensible Firmware Interface (UEFI) 仕様」のバージョン 2.2 の付録 N で説明されているように、共通プラットフォーム エラー レコード (CPER) に基づいています。

次の図は、エラー レコードの一般的な形式を示しています。

diagram illustrating the general format of an error record.

エラー レコードは、エラー レコード ヘッダーと、その後に続く 1 つ以上の固定長エラー レコード セクション記述子で構成されています。 エラー レコード セクション記述子ごとに、エラー データまたは情報データを含む、関連する可変長エラー レコード セクションがあります。 エラー レコードには、少なくとも 1 つのエラー レコード セクションが含まれている必要があります。

エラー レコードには、エラー レコード セクションとセクション記述子を動的に追加するための追加のバッファー領域を含めることができます。 追加のバッファー領域を使用して、既存のエラー レコード セクションのサイズを動的に大きくすることもできます。

エラー レコードは、WHEA_ERROR_RECORD 構造によって記述され、エラー レコード ヘッダーは WHEA_ERROR_RECORD_HEADER 構造によって記述され、エラー レコード セクション記述子はそれぞれ WHEA_ERROR_RECORD_SECTION_DESCRIPTOR 構造によって記述されます。

各エラー レコード セクションには、次のいずれかのセクションの種類を指定できます。

ハードウェア エラー パケット
このエラー レコード セクションには、エラーを報告した低レベルのハードウェア エラー ハンドラー (LLHEH) によってオペレーティング システムに渡されたハードウェア エラー パケットが含まれています。 このセクションに含まれるデータは、WHEA_ERROR_PACKET 構造によって説明されます。

汎用プロセッサ エラー
このエラー レコード セクションには、特定のプロセッサ アーキテクチャに固有ではないプロセッサ エラー データが含まれています。 このセクションに含まれるデータは、WHEA_PROCESSOR_GENERIC_ERROR_SECTION 構造によって説明されます。

x86/x64 プロセッサ エラー
このエラー レコード セクションには、x86 または x64 プロセッサ アーキテクチャに固有のプロセッサ エラー データが含まれています。 このセクションに含まれるデータは、WHEA_XPF_PROCESSOR_ERROR_SECTION 構造によって説明されます。 次の図は、プロセッサ エラー データを含むデータ構造が VariableInfo メンバーにどのように格納されるかを示しています。

Processor error data.

Itanium プロセッサ エラー
このエラー レコード セクションには、Itanium プロセッサ アーキテクチャに固有のプロセッサ エラー データが含まれています。 このエラー レコード セクションに含まれるエラー データの形式について詳しくは、「Intel Itanium Processor ファミリ システム抽象かレイヤーの仕様」をご覧ください。

Itanium プロセッサ ファームウェア エラー レコード リファレンス
このエラー レコード セクションには、Itanium プロセッサ アーキテクチャに固有のファームウェア エラー レコードへの参照が含まれています。 このエラー レコード セクションは、WHEA_FIRMWARE_ERROR_RECORD_REFERENCE 構造によって記述されます。

プラットフォーム メモリ エラー
このエラー レコード セクションには、プラットフォーム のメモリ エラー データが含まれています。 このセクションに含まれるデータは、WHEA_MEMORY_ERROR_SECTION 構造によって説明されます。

マスク不可能割り込み
このエラー レコード セクションには、マスク不可能な割り込み (NMI) データが含まれています。 このセクションに含まれるデータは、WHEA_NMI_ERROR_SECTION 構造によって説明されます。

PCI Express エラー
このエラー レコード セクションには、PCI Express エラー データが含まれています。 このセクションに含まれるデータは、WHEA_PCIEXPRESS_ERROR_SECTION 構造によって説明されます。

PCI/PCI-X バス エラー
このエラー レコード セクションには、PCI/PCI-X バスのエラー データが含まれています。 このセクションに含まれるデータは、WHEA_PCIXBUS_ERROR_SECTION 構造によって説明されます。

PCI/PCI-X デバイス エラー
このエラー レコード セクションには、PCI/PCI-X デバイスのエラー データが含まれています。 このセクションに含まれるデータは、WHEA_PCIXDEVICE_ERROR_SECTION 構造によって説明されます。

前の一覧のセクションの種類のいずれかに適合しない追加のハードウェア エラー データの場合、プラットフォーム固有のエラー レコード セクションを定義してデータを格納できます。 定義されているプラットフォーム固有のエラー レコード セクションの種類ごとに、エラー レコード セクションの種類を識別する、対応する GUID を定義する必要があります。 この GUID は、その種類のエラー レコード セクションを記述する WHEA_ERROR_RECORD_SECTION_DESCRIPTOR 構造の SectionType メンバーで指定されます。

前の一覧のいずれかのセクションの種類または定義済みのプラットフォーム固有のエラー レコード セクションに収まらない追加のハードウェア エラー データがある場合、汎用エラー レコード セクションを使用してデータが格納されます。