ファームウェア更新の状態
この時点では、すべてのファームウェア更新プログラムが適用され、Windows OS ローダーの後続の実行で ESRT にすべての更新プログラムの結果が反映されることが予想されます。 ESRT テーブル定義の ESRT の例と、更新ドライバー パッケージの作成におけるファームウェア リソース更新ドライバー パッケージ INF の例を参照します。firmware.bin のバージョン 2 がファームウェアによって正常に適用された場合、新しい ESRT テーブルにこれが反映されます。 テーブルのたったひとつの違いは、システム ファームウェア リソース エントリのファームウェア バージョン フィールドと 最終試行バージョン フィールドが、正常に適用された新しいファームウェア バージョンを反映するように変更されていることです。
フィールド | 値 | コメント |
---|---|---|
ファームウェア リソースの数 | 2 | この表には、2 つのファームウェア リソース エントリが含まれています。 |
ファームウェア リソースの最大値 | 2 | このテーブルの割り当てには、最大 2 つのリソースを記述するために十分な領域が含まれています。 |
ファームウェア リソースのバージョン | 1 | この表で使用するファームウェア リソース エントリ形式のバージョンは 1 です。 |
ファームウェア リソース エントリ配列 | ファームウェア リソース エントリ 0 | |
ファームウェアのクラス | (SYSTEM_FIRMWARE) | この GUID は、PnP を介して更新するシステム ファームウェアを識別します。 |
ファームウェアの種類 | 1 | システム ファームウェアの種類は 1 です。 |
Firmware Version | 2 | 現在のファームウェア バージョンは 2 です。 |
サポートされている最小バージョンのファームウェア | 2 | サポートされているファームウェアの最小バージョンが 2 に変更したため、ファームウェアをバージョン 2 より以前のバージョンにロール バックすることはできません。 通常、この値は、ファームウェアの更新にセキュリティ修正プログラムが含まれている場合に変更します。 |
カプセル フラグ | 0 | システム ファームウェアは、プライベート カプセル更新フラグを定義しません。 |
前回の試行バージョン | 2 | 更新が試行された最新のシステム ファームウェア バージョンは 2 です |
最新の試行の状態 | 0 | 最新のシステム ファームウェアの更新が成功しました。 |
ファームウェア リソース エントリ 1 | ||
ファームウェアのクラス | (DEVICE_FIRMWARE) | この GUID は、PnP を介して更新するデバイス ファームウェアを識別します。 |
ファームウェアの種類 | 2 | デバイスのファームウェアの種類は 2 です。 |
Firmware Version | 1 | 現在のデバイス ファームウェア バージョンは 1 です。 |
サポートされている最小バージョンのファームウェア | 1 | サポートされるファームウェアの最小バージョンを 1 のままにします。 必要に応じて、ファームウェアをバージョン 1 にロールバックできます。 |
カプセル フラグ | 0x8010 | デバイス ファームウェアは、プライベート カプセル更新フラグ (0x8010) を定義します。 |
前回の試行バージョン | 1 | 更新が試行された最新のデバイス ファームウェア バージョンは 1 です。 |
最新の試行の状態 | 0 | 最新のデバイス ファームウェアの更新に成功しました。 |
ファームウェアを正常に適用できない場合、ESRT のファームウェア バージョン、最新試行バージョン、および最新試行状態のエントリには、失敗した更新の試行が反映されます。 たとえば、システムがファームウェアのバージョン 1 をバージョン 2 に更新しようとして、正常な適用に失敗した場合、ファームウェア バージョン = 1、最新試行バージョン = 2、および最新試行状態 != 0 になります。 (つまり、最新の試行状態は、エラーが発生した理由を示す適切な 0 以外のエラー コードに設定されます。 このエントリの有効なエラー コードの一覧については、ESRT テーブル定義を参照してください。
標準の更新ポリシーではファームウェアのバージョンを増やすことのみが強制されますが、このポリシーは、次の「ファームウェア更新プログラムのロールバック」章に説明するように、ポリシー設定からテスト目的で無効にすることができます。
システムのリセット
システムのリセットにより、エンド ユーザーはシステムを出荷時の設定に戻すことができます。 これを行うするには、製造プロセスで事前にシステムに読み込まれた Windows イメージを再インストールします。 ドライバーやアプリケーションを含む OS 全体が再インストールされます。
セキュリティの境界を越えてファームウェアのロールバックを防止するセキュリティ要件のため、システム リセットによって工場でデプロイされた元のファームウェアに合わせてファームウェアのバージョンをロールバックすることはできません。 つまり、ファームウェアのすべてのバージョンは、そのプラットフォームに付属するすべてのドライバーとオペレーティング システムのバージョンと下位互換性があることが必要です。 ファームウェアに互換性がない場合、ユーザーは製造元にシステムを戻さなければならないことがあります。
ファームウェア更新プログラムのロールバック
場合によって、たとえば更新テスト中にファームウェアの更新プログラムをロールバックすることが必要になることがあります。 報告された各 ESRT ファームウェア リソースには、HKLM\SYSTEM\CurrentControlSet\Control\FirmwareResources というレジストリ キー にエントリがあります。
エントリは、ESRT 内のリソースを報告するために使用する GUID と等しい名前を持つキーです。 ファームウェアのロールバックを許可するには、Policy という REG_DWORD 値を作成し、値を 1 に設定します。 特定のファームウェア リソースは、ESRT で指定するように、サポートされるそれぞれの最小ファームウェア バージョンにのみロールバックできます。 これは、重要なセキュリティ修正がファームウェアに対して行われた時点を超えたファームウェアのロールバックを防止するためです。 ロールバックするファームウェアのバージョンがこれらの条件を満たしている場合、OS ローダーは古いバージョンに更新されます。