次の方法で共有


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

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

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

OEM ロゴ ファイル

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

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

POST (Power-On Self-Test) とオペレーティング システムの起動時間は、以前よりも高速です。 適切なブランド化の瞬間を確保するために、OEM ロゴは POST とオペレーティング システムの起動の両方で表示されます。 このアプローチでは、OEM ロゴは容易に認識でき、適切に維持され、高速で信頼性の高いエクスペリエンスに関連付けられます。

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

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

ブート画面の背景は常に黒なので、黒の背景に見栄えの良いロゴを使用してください。 ロゴには真の黒い背景も必要なので、ロゴの黒い背景が終わり、画面の黒い背景が始まるところに顕著な違いはありません。 透明度はサポートされていません。 黒の背景は、ロゴの初期レンダリングと、UEFI グラフィックス出力プロトコル (GOP) からオペレーティング システムネイティブ ビデオ ドライバーへの移行の起動時のフェードアウトの両方のシステム パフォーマンスを最適化します。 Windows のその他の領域では、セットアップ、Push-Button リセット (PBR)、セキュア ブート修復、スタートアップ修復ツールなど、ロゴも使用されます。これらはすべて黒の背景を使用します。 これらのエクスペリエンスでは、ブート グラフィックス リソース テーブル (BGRT) と同じロゴが使用されます。

POST 中にロゴを配置する

ファームウェアは、POST に OEM ロゴを描画し、ロゴを所定の位置に配置します。 Windows の起動が開始されると、ロゴはビデオ バッファーに保持されます。 デスクトップは、パネルの EDID (拡張ディスプレイ識別データ) を読み取ることで、パネルのネイティブ解像度を検出できます。

シーケンス全体でロゴが正しく表示されるようにするには、デバイスのネイティブ解像度で POST を実行する必要があります。 これにより、ロゴが目的のサイズ、形状、位置、および Windows に必要であることが保証されます。

PC のブランドを紹介するために、特定の場所の画面にロゴが表示されます。 ロゴは、画面の上端から 38.2% 中央に配置することをお勧めします。 この位置付けは、ゴールデン 比の視覚的な美学に基づいており、Windows 10 の設計比率に一致します。 Windows 10 を実行しているすべての PC で一貫した配置を行うと、Windows は進行状況リングを正しい場所に配置し、ロゴとリングのバランスを視覚的に調整できます。

この視覚的バランスをさらにサポートするには、ロゴのサイズを画面の高さと幅の 40% に制限することをお勧めします。 これにより、画面が正しく表示され、Windows が起動時にロゴを適切にフェードアウトできるようになります。 ロゴの最大領域は、画面の上部から 18.2% 以下にすることをお勧めします。

これらの設計原則は、横向きデバイスと縦向きデバイスの両方に適用されます。

BGRT にロゴを追加する

POST 中にロゴを正しく配置するだけでなく、ブート グラフィックス リソース テーブル (BGRT) 内にもロゴを格納します。 BGRT は、リソースと画面上の場所を記述するために使用する Windows 用の新しいオブジェクトを動的に定義します。 EfiBootServicesData にロゴを格納し、BGRT を介して公開します。 BGRT インターフェイスは、このロゴを、ピクセル形式が 0xRRGGBB の 24 ビット ビットマップ、またはピクセル形式が 0xrrRRGGBB の 32 ビット ビットマップ ('rr' が予約済み) としてサポートされています。 これは、Windows がロゴにアクセスするために使用する標準インターフェイスです。

BGRT の 2 つの重要なフィールドは、"Image Offset X" と "Image Offset Y" です。 これらは、ロゴの画面上の配置の左上隅の (x,y) 値です。 これらの値を設定するときは、ロゴの位置や境界ボックスの左上隅を使用していないことを確認してください。または、Windows がセットアップ、スタートアップ修復、Push-Button リセットなどのエクスペリエンスでロゴを正しく配置しないようにします。

ロゴ リソースの埋め込みを最小限に抑え、適切な中央揃えのために必要なものだけを使用する必要があります。 最小パディングを使用すると、ファームウェアの領域が節約され、Windows は BGRT ベースのロゴを適切にスケーリングできます。

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

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

テキストを更新する

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

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

ファームウェア更新ブート画面のコンポーネント。

Windows ファームウェア更新プログラムの表示カプセル

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

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

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

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

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

次の表では、ファームウェア更新のディスプレイカプセルペイロードについて記述します。

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

0: ビットマップ

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

表示に対する相対的な画像オフセット値

ファームウェア更新ペイロード用に生成されたカプセルとは異なり、ディスプレイカプセル ペイロードはページ境界に揃えられるようにパディングされていません。 表示ペイロードは、カプセル ヘッダーの直後にあります。

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

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

BGRT ファームウェア更新プログラムの表示カプセル 理由
ビットマップへのポインター 埋め込みビットマップ ビットマップを埋め込むと、カプセルを 1 回の操作で保存および復元できます。
ビデオ モードを含まない ビデオ モードを含む UpdateCapsule 呼び出し中にファームウェアがビデオ モードのクエリを実行する必要を回避するために行われます。
[状態] フィールドを含む [状態] フィールドが含まれていません BGRT の [状態] フィールドは、画像が現在画面に表示されているかどうかを示します。 これは、ファームウェア更新プログラムのディスプレイ カプセルには適用されません。

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