ブート画面のコンポーネント

ファームウェア更新プログラムのブート画面には、OEMロゴと更新プログラムのテキストの2つのコンポーネントがあります。 この記事では、これらの各コンポーネントを構成する方法と、これらのコンポーネントがファームウェア更新capsuleでファームウェアに渡される方法に関する情報について説明します。

ファームウェア更新プログラムのブート画面のOEMロゴは、通常のブートプロセス中に表示されるロゴと同じである必要があります。 ファームウェア更新プログラムのブート画面のロゴは、通常のブートプロセス中に表示されるものと同じサイズ、位置、および品質である必要があります。

OEM ロゴ ファイル

ユーザーが操作できる画面が表示される前に、OEM ロゴがブート画面に表示されます。

OEMロゴはOOBEのどの画面にも表示されず、OOBE後に コントロールパネル[パフォーマンス情報とツール] に表示されます。 設定 アプリには表示されません。

電源投入時の自己テスト (POST) とオペレーティング システムの起動にかかる時間がこれまでよりも短縮されています。 適切なブランド表示の時間を確保するために、OEM ロゴは POST とオペレーティング システムの起動の両方にわたり表示されます。 この方法では、OEM ロゴは容易に認識可能で、適切に持続され、高速で信頼性の高いエクスペリエンスと関連付けられます。

さらに、OEMロゴは コントロールpパネルアプリ[パフォーマンスの情報とツール] の下にブランド化要素として表示されます。 設定 アプリには表示されません。

追加するロゴは、Windowsを実行している新しいPcとの最初の視覚的な出会いを顧客に提示するため、端と内側がきれいで鮮明でシャープである必要があります。

ブート画面の背景は常に黒いため、黒色の背景によく映えるロゴを使用します。 ロゴには完全な黒色の背景を設定して、ロゴの黒色の背景と画面の黒色の背景が接触するところで色に違いが見えないようにする必要があります。 透過性はサポートされません。 黒色の背景により、UEFI グラフィック出力プロトコル (GOP) からオペレーティング システムのネイティブ ビデオ ドライバーに切り替わる、ロゴの最初のレンダリングとブートの終わりでのフェード アウトの両方に対するシステムのパフォーマンスが最適化されます。 Windowsの他の領域でもロゴが使用されます。セットアップ、Push-Button Reset (PBR) 、セキュアブート修復、およびスタートアップ修復ツール。これらはすべて黒の背景を使用します。 これらの表示では、BGRT (Boot Graphics Resource Table) から同じロゴを使用します。

POST 中にロゴを配置する

ファームウェアにより POST で OEM ロゴが描画され、事前に決められた場所にロゴが配置されます。 Windows の起動が開始すると、ロゴはビデオ バッファー内で保持されます。 デスクトップが EDID (Extended Display Identification Data) を読み取ってパネルのネイティブの解像度を検出できます。

一連の流れ全体にわたりロゴが正しく表示されるようにするには、デバイスのネイティブの解像度で POST が行われる必要があります。 そうなることで、Windows の要件を満たす、お客様の希望通りのロゴのサイズ、形、位置が得られます。

ロゴは PC のブランドを明示するために、画面上の特定の場所に表示する必要があります。 ロゴの中心が画面の上端から 38.2% のところにくるように配置することをお勧めします。 この配置は、視覚上の美的感覚の黄金比に基づくもので、Windows 10 のデザイン比率に合致します。 すべての Windows 10 搭載の PC にわたりこの一貫した配置をすることにより、Windows のプログレス リングを正しい場所に配置でき、ロゴとリングの視覚的なバランスが確保されます。

この視覚的なバランスをいっそう支えるために、ロゴのサイズを画面の高さと幅の 40% に制限することをお勧めします。 これにより、画面が正しく表示され、ブートの終わりでロゴの表示が適切にフェード アウトされます。 ロゴの最大領域の開始部分は、画面上部から 18.2% の位置以下になるようにすることをお勧めします。

これらのデザインの原則は、横長と縦長の両方のデバイスに適用されます。

ロゴを BGRT に追加する

POST 中にロゴを正しく配置することに加えて、BGRT (Boot Graphics Resource Table) 内にロゴを保存することも行います。 BGRT は、新しいオブジェクトを Windows が使用してそのリソースと画面上の位置を記述できるように、動的に定義します。 ロゴを EfiBootServicesData で保存して、BGRT によって公開します。 BGRTインターフェイスは、0xRRGGBBのピクセル形式を持つ24ビットビットマップ、または0xrrRRGGBBのピクセル形式を持つ32ビットビットマップとしてこのロゴをサポートしています。'rr'は予約されています。 これは Windows がロゴにアクセスするために使用する標準的なインターフェイスです。

BGRT では、Image Offset X と Image Offset Y の 2 つが重要なフィールドです。 これらは、ロゴの画面上の場所に基づく左上隅の (x、y) 値になります。 これらの値を設定する場合は、ロゴの位置または境界ボックスの左上隅を使用しないようにしてください。そうしないと、セットアップ、スタートアップ修復、プッシュボタンのリセット、またはその他のエクスペリエンスでロゴが正しく配置されません。

ロゴのリソース内のパディングを最小限にして、適切なセンタリングのために必要な範囲で使用する必要があります。 最小のパティングを使用することで、ファームウェア内のスペースが節約され、Windows が BGRT ベースのロゴを適切に拡大縮小できるようになります。

OEMロゴは、OOBEのどの画面にも表示されません。

BGRTの詳細については Advanced Configuration and Power Interface (ACPI) 仕様のセクション5.2.22を参照してください。

テキストを更新します。

ファームウェア更新プログラムのブート画面の更新テキストは、読みやすく、理解しやすいように設計されている単純な文字列です。 テキストは、Windowsブートローダーによってレンダリングされます。 ファームウェアの更新プログラムが保留中であると判断したら、ブートローダーはWindowsのロケールを決定し、画面にローカライズされたテキストを表示します。

UpdateCapsuleへの呼び出し中に、ブートローダーはすべてのファームウェア更新capsuleを渡します。 さらに、表示されるテキストのビットマップと画面上のビットマップの場所を含む、Microsoft定義の ファームウェア更新表示 にも渡されます。 システムファームウェアのUpdateCapsuleメソッドは、画面がクリアまたは変更されるたびに画面にビットマップを再表示できるように、capsuleを保持する必要があります。

firmware update boot screen components.

Windowsファームウェア更新表示capsule

WindowsブートローダーがシステムファームウェアのUpdateCapsuleメソッドを呼び出すと、すべてのファームウェア更新capsuleに渡されます。 さらに、Windows UX capsuleに渡されます。 このcapsuleには、画面に表示する必要がある、レンダリングされたローカライズされたテキストのビットマップが含まれています。 次のGUIDは、このcapsuleを識別するために使用されます。{3b8c8162-188c-46a4-aec9-be43f1d65697}。

UX capsuleがcapsuleの配列に表示される順序は保証されません。 UX capsuleを検索する特定のインデックス位置に依存しないでください。 ベストプラクティスには、UX capsuleを検索して配列をスキャンし、配列内の残りのファームウェアcapsuleを処理する前に処理することが含まれます。

UX capsuleが存在しないシナリオがあることに注意してください。 たとえば、ディスプレイアダプターがないヘッドレスサーバーの場合、UX capsuleはありません。 このような場合、ファームウェアUpdateCapsule呼び出しでは、UX capsuleの要件を無視できます。 ただし、UXカプセルが存在する場合は、このセクションで説明するプロセスに従ってUpdateCapsuleを処理する必要があります。

次の表では、UX capsuleのファームウェア更新プログラムの表示ヘッダーについて説明します。

フィールド バイト長 バイトオフセット 説明
CapsuleGuid 16 0 FIRMWARE_UPDATE_DISPLAY_CAPSULE
HeaderSize 4 16 sizeof (EFI_CAPSULE_HEADER)
Flags 4 20 CAPSULE_FLAGS_PERSIST_ACROSS_RESET
CapsuleImageSize 4 24 ファームウェア更新プログラムの表示capsuleの長さを記述する4バイトの符号なし整数。 サイズには、表示イメージを含むヘッダーとcapsuleが含まれます。

次の表では、ファームウェア更新プログラムの表示capsuleペイロードについて説明します。

フィールド バイト長 バイトオフセット 説明
バージョン 1 28 表示capsuleのリビジョンが実装されているを識別します。 このフィールドは1に設定されます。
チェックサム 1 29 単純な検証を有効にするチェックサムが含まれています。 表示イメージを含むcapsule全体 (ヘッダーとペイロード) の合計は0にする必要があります。 合計が0でない場合、capsuleは無視されます。
ImageType 1 30 埋め込みイメージの形式を指定します。

0: ビットマップ

1-255: 将来の使用のために予約済み。
予約済み 1 31 将来の使用のために予約済み。 ゼロを指定してください。
モード 4 32 埋め込みイメージを表示できるグラフィックス出力プロトコルのビデオモードを指定します。 ビデオモードは、UpdateCapsuleを呼び出す前に照会され、埋め込みイメージがブートローダーによって表示されるときに、現在のビデオモードとローカルディスプレイのビデオモードについて説明します。 値は、イメージがレンダリングされるときに、EFI_グラフィックス_出力_プロトコル_モード構造のモードフィールドに相当します。
イメージのオフセットX 4 36 ビットマップイメージのXオフセットを記述する4バイト (32ビット) の符号なしlong。 (X、Y)イメージの左上隅のオフセットを表示します。 ディスプレイの左上隅は、オフセット(0, 0)になります。
イメージのオフセットY 4 40 ビットマップイメージのYオフセットを記述する4バイト (32ビット) の符号なしlong。 (X、Y)イメージの左上隅のオフセットを表示します。 ディスプレイの左上隅は、オフセット(0, 0)になります。 例については、次の図を参照してください。
Image 該当なし 44 ファームウェアの更新プロセス中に表示する埋め込みビットマップを含むバイト配列。 ビットマップには、ピクセル形式0xRRGGBBの24ビットマップまたはピクセル形式0xrrRRGGBB、'rr'が予約されている32ビットビットマップのいずれかを指定できます。

image offset value relative to display

表示capsuleペイロードは、ファームウェアの更新プログラムのペイロード用に生成されたcapsuleとは異なり、ページに合わせて埋め込まれていません。 表示ペイロードは、capsuleヘッダーの直後に続きます。

ファームウェア更新プログラムの表示capsuleでは、ファームウェアの更新中にレンダリングする必要があるグラフィックについて説明します。 グラフィックは、最初にレンダリングされ、Windowsによって表示され、ファームウェアの更新プログラムのペイロード (s) を含む同じUpdateCapsule呼び出しの一部としてファームウェアに渡されます。 ファームウェアは、システムまたはビデオデバイスをリセットする場合、ファームウェアは、表示capsuleで提供されるビットマップを再表示する必要があります。 物理メモリがリセット間で永続化されていない場合、ファームウェアは、リセット後にビットマップを再表示する永続ストレージにビットマップを保存する必要があります。 保存し、リセット間でビットマップを復元する方法の詳細は実装固有であり、このホワイトペーパーでは説明されていません。

ファームウェア更新プログラムの表示capsule ACPI 5.0で定義されているブートグラフィックスリソーステーブル (BGRT) からモデル化されます。 BGRTは、OSブートローダーにグラフィックスを提供するシステムファームウェアのメカニズムを定義します。 2つのテーブルは似ていますが、いくつかの注目すべき違いがあります。

BGRT ファームウェアアップデート表示カプセル 理由
ビットマップへのポインター 埋め込みビットマップ ビットマップを埋め込むことにより、capsuleを保存し、1回の操作で復元できます。
ビデオモードが含まれていません ビデオモードが含まれています UpdateCapsule呼び出し中にビデオモードを照会するファームウェアを必要としないようにします。
状態フィールドが含まれています 状態フィールドが含まれていません BGRTの状態フィールドには、イメージが現在画面に表示されているかどうかについて説明します。 これは、ファームウェアの更新プログラムの表示capsuleには適用されません。

UEFI ファームウェア更新プログラム用のユーザー エクスペリエンス