osdev-jpでは、OS開発に有用な情報を収集し公開しています

View My GitHub Profile

Takym > UEFI_2.9

このページでは、UEFI 2.9 の一部を翻訳しています。 この翻訳は正しいとは限りません。

4. EFI システムテーブル (原文のページ: 166~167)

この項では UEFI イメージの開始地点とその開始地点へ渡される引数について説明します。 この仕様書に従ったファームウェアにより読み込まれ実行される UEFI イメージは三種類あります。 UEFI アプリケーション(2.1.2 を参照)、UEFI ブートドライバ(2.1.4 を参照)、UEFI ランタイムドライバ(2.1.4 を参照)があります。 UEFI アプリケーションは UEFI OS ローダー(2.1.3 を参照)を含みます。 これら三つのイメージの開始地点には相違はありません。

4.1 UEFI イメージ開始地点

イメージに渡される最も重要な引数はシステムテーブルへの参照です。 この参照は、UEFI イメージの開始地点である EFI_IMAGE_ENTRY_POINT(下記で定義する)です。 (前述の文章は仕様書には「This pointer is EFI_IMAGE_ENTRY_POINT (see definition immediately below), the main entry point for a UEFI Image.」と書かれていた。) システムテーブルは、有効なコンソールデバイス、ブートサービステーブルへの参照、ランタイムサービステーブルへの参照、及び、ACPI・SMBIOS・SAL システムテーブルの様なシステム構成設定への参照を含みます。 この項ではシステムテーブルについて詳しく説明します。

EFI_IMAGE_ENTRY_POINT

概要 UEFI イメージの開始地点です。開始地点は UEFI アプリケーションと UEFI ドライバで同じです。

宣言

typedef
EFI_STATUS
(EFIAPI *EFI_IMAGE_ENTRY_POINT) (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE *SystemTable
);

引数

説明 この関数はEFIイメージの開始地点です。EFIイメージはEFIブートサービスの EFI_BOOT_SERVICES.LoadImage() によりシステムメモリに配置されます。EFIサービスはEFIブートサービスの EFI_BOOT_SERVICES.StartImage() により呼び出されます。

最初の引数はイメージのイメージハンドルです。二番目の引数はシステムテーブルへの参照です。システムテーブルは標準入出力ハンドル、EFI_BOOT_SERVICES、及び EFI_RUNTIME_SERVICES への参照を含みます。(翻訳中…)

戻り値

訳語

英語 日本語
Entry point 開始地点
Pointer 参照
Configuration 構成設定
Resource 資源