Windows UEFI ファームウェア更新プラットフォーム
Windowsでは、UEFI UpdateCapsule関数を使用して処理されるドライバー パッケージを使用して、システムとデバイスのファームウェア更新プログラムをインストールするためのプラットフォームがサポートされています。 このプラットフォームは、一貫性のある信頼性の高いファームウェア更新エクスペリエンスを提供し、エンド ユーザーにとって重要なシステム ファームウェア更新プログラムの検出可能性を向上させます。
UEFI ファームウェア更新プラットフォームのガイダンスは、Windows を実行するハードウェア プラットフォームを構築している SoC ベンダーおよび OEM を対象としています。 UEFI ファームウェア更新プラットフォームは、次のオペレーティング システム バージョンでサポートされています。
Windows 8
Windows 8.1
Windows 10 デスクトップ エディション (Home、Pro、Enterprise、Education)
Windows 10 での UEFI ファームウェア更新プログラムのサポート
デスクトップ エディションの Windows 10 を実行するすべてのシステムでは、ドキュメントのこのセクションで説明されている UpdateCapsule ベースの更新プロセスに従って、UEFI ファームウェアの更新プログラムを実装する必要があります。
UEFI ファームウェア更新プラットフォームの概要
Windows 経由でサービスを提供できるファームウェアには、システム ファームウェアとデバイス ファームウェアの 2 種類があります。 システム ファームウェアは、システム全体に重要なブート サービスとランタイム サービスを提供する役割を担い、デバイス ファームウェアはシステムに統合された特定のデバイスに関連付けられています。 このようなデバイス ファームウェアは通常、デバイス ドライバーと連携して動作し、OS がデバイスを OS レベルのサービスとアプリケーションに公開できるようにします。
システムファームウェアの更新
UEFI ベースのシステムのシステム ファームウェア更新プログラムは、デバイス ドライバー パッケージ (INF) として展開されます。 Windows では、プラットフォームによって提供される情報を使用して、更新プログラム パッケージが適切なシステムにのみ適用されるようにします。 ファームウェア更新パッケージには、システム ファームウェア イメージを含むバイナリ ファイルが含まれています。 ファームウェア更新パッケージがエンド ユーザーのシステム上にあると、Windows は UEFI UpdateCapsule 関数を使用して、ファームウェア ペイロードを処理のためにプラットフォーム ファームウェアに渡します。
更新プログラムをドライバー パッケージとして展開すると、ファームウェアの更新プロセスは、多くの既存の展開およびサービス ツールに合わせて調整でき、ハードウェア ベンダー向けの簡単な更新プログラム パッケージの作成が保証されます。
ファームウェアの更新プログラムはドライバー パッケージとして配信されますが、更新プログラムが実際のドライバーとして書き込まれるというわけではありません。 ドライバー パッケージには、INF ファイルと、システムまたはデバイスのファームウェア イメージを含むバイナリ ファイルが含まれています。
デバイスファームウェアのアップデート
デバイス ファームウェアを更新するために、デバイス ファームウェアを次の 2 つのカテゴリのいずれかに割り当てることができます。
UEFI 更新可能なデバイス ファームウェア。
このデバイス ファームウェアは、システム ファームウェアと同じメカニズムを使用して、デバイス ドライバー パッケージを使用して更新できます。 デバイス ファームウェアの更新プログラムは、ファームウェア更新プログラム パッケージとして配布されます。 ファームウェア更新パッケージがエンドユーザーのシステムに配置されると、Windows は UEFI UpdateCapsule 関数を使用して、デバイス ファームウェア ペイロードをプラットフォーム ファームウェアに渡して処理します。 このプロセスは、Windows がシステム ファームウェア更新プログラムのペイロードを受け取る方法と同じであり、以下で説明します。
個別のファームウェア更新ドライバー パッケージを使用してデバイス ファームウェアを更新することをお勧めします。 ただし、デバイス ファームウェアは、1 つのファームウェア更新ドライバー パッケージの一部としてシステム ファームウェアで更新される場合もあります。
周辺機器の更新には UEFI を使用しないでください。 UEFI では、(外部のリムーバブル) 周辺機器では保証できないファームウェア更新プログラムを適用するために、再起動中にデバイスが存在する必要があります。
ドライバー更新可能なデバイス ファームウェア。
このデバイス ファームウェアは、通常の Windows OS ランタイム中にデバイス ドライバーによって更新できます。 通常の Windows OS ドライバーを使用したデバイス ファームウェアの更新については、このホワイト ペーパーでは説明しません。
Windows ファームウェア更新プログラムのシステム要件
システムが Windows ファームウェア更新メカニズムと互換性を持つためには、次の要件を満たす必要があります。
システムは、UEFI 仕様 2.8 のセクション 8.5.3 で定義されている UpdateCapsule と QueryCapsuleCapabilities を実装する必要があります。
UpdateCapsule は、Windows とプラットフォーム ファームウェアの間でファームウェア更新ペイロードを渡すために使用されます。
プラットフォーム ファームウェアは、Windows によって開始されるファームウェア更新プログラムをサポートする必要があります。
システム ファームウェアとデバイス ファームウェアの一部のクラスは、このプロセスを使用して更新可能である必要があります。 ファームウェア コードは、UpdateCapsule に渡されたファームウェア更新ペイロードを認識し、更新プロセスを開始します。 実装はパートナーが所有しています。
EFI システム リソース テーブル (ESRT) でファームウェア リソースを指定する必要があります
ファームウェア リソースを使用すると、Windows はハードウェア ID を持つデバイス インスタンスを表示できます。これは、システムまたはデバイスのファームウェアの更新を適切なシステムとデバイスに適用するために使用されます。 また、現在のファームウェア バージョンについても説明し、以前の更新プログラムの状態を示します。
システム ファームウェアの更新プログラムのエントリが 1 つ存在します。 更新可能なファームウェアを持つすべてのデバイスには、システム ファームウェアの更新の一部としてデバイスのファームウェアが更新されない限り、ESRT で指定されたリソースが必要です。
詳細については、ESRT テーブル定義を参照してください。