UEFI 環境からのデバイス I/O

Windows OSローダーがUpdateCapsule関数を呼び出すと、CapsuleHeaderArrayに含まれている各capsuleが実行されます。 capsuleの実行の順序は、UEFIファームウェアの実装に依存し、capsuleは、他のcapsuleを基準とした実行の順序や他のcapsuleへの依存関係を想定することはできません。 各capsuleは、更新プログラムとファームウェアイメージを管理する実行可能なUEFIコードの両方で構成される自己完結型のペイロードです。

capsuleが呼び出されると、capsuleに含まれる実行可能コードは、ターゲットデバイスとの通信チャネルを開く責任を負います。 適切なチャネルは、システムのデバイストポロジ、ターゲットデバイスの機能、および特定のUEFI実装によって提供されるUEFIブートサービスとドライバーによって異なります。 Capsuleの実装者は、対象のUEFI環境で使用可能なオプションについて、UEFI BIOSベンダーに問い合わせる必要がある場合があります。 通常、通信は、特定のデバイスのUEFIデバイスドライバーを利用して確立されます。 このドライバーは、適切なプロトコルを使用して、既知のデバイスパスを介してデバイスにバインドするcapsule更新コードを有効にします。

通信が確立されると、更新管理コードは、ターゲットデバイスにファームウェアイメージを書き込みます。 更新が完了すると、ESRT内のデバイスのファームウェアリソースエントリに適切なリターン状態コードが書き込まれます。 更新管理コードは、UpdateCapsule関数に制御を返します。

UpdateCapsule関数、capsuleの構造、およびUEFIブートサービスドライバーとプロトコルの詳細については UEFI仕様を参照してください。

ESRTテーブルの定義

プラグ アンド プレイ デバイス

更新プログラム ドライバー パッケージの作成

更新プログラムの処理

シームレスな危機防止と回復

ファームウェア更新の状態