UEFI HII (Human Interface Infrastructure)一些知识点

    HII Database 是整个平台的中央数据中心,Driver 负责将一些元素安装到Database中,如字体,字符串,图像,表格;Forms Browser使用这些元素在显示设备(Display Devices)上来呈现用户界面,或者通过输入设备(HID devices)接收用户信息;交互后用户在Forms Browser里面的更改会保存在EFI Global Variable Store(使用 GetVariable() 和 SetVariable() )或者自定义驱动提供的变量存储空间中。

HII Database

       作为系统所有表单,字串,图片,字体数据的资源库,驱动如果包含对数据库合适的信息,就会输出数据到HII database。例如,一个驱动可能包含所有主板具体数据(传统系统“setup”),另外,外接卡可能包含它们自己的驱动,也就有它们自己的setup相关数据。所有这些含有setup相关数据的驱动都会输出它们的信息到HII database

Forms Browser

        读取HII Database内容,翻译forms 数据来展现给user,如setup相关数据。同样也会获取用户输入的数据,允许将变化保存倒NV 存储中

Driver

    驱动和应用动态生成package,每个package有标准的header(EFI_HII_PACKAGE_HEADER),来表明大小以及package type; 每个package以header->type=EFI_HII_PACKAGE_END终止,就这样串在一起形成package list。

Forms Package

   packageheader-》type =EFI_HII_PACKAGE_FORMS即Forms package,其用来携带基于Forms的编码数据,Forms里面对象都是IFR(Internal Forms Representation)编码,我们一般使用的VFR,HFR, SD最后都是要转换为IFR,Forms package将IFR对象表现为op-code的集合。

packageheader offset+sizeof(EFI_HII_PACKAGE_HEADER)即IFR

IFR是对HII相关对象的一个二进制编码,每一个对象至少有3个属性,以标准的header(EFI_IFR_OP_HEADER)开始:

Opcode:所有不同HII相关对象的枚举,参考UEFI 33.3.8.3 Opcode Reference

 Length: Opcode自身长度

Scope:如果设定,会打开一个新的scope

综上,Packagelist->Forms Package->IFR,根据IFR->OpCode来获取具体form信息,如opcode如果为EFI_IFR_FORM_SET,则可以读到以下具体信息

    Packagelist 可以通过EFI_HII_DATABASE_PROTOCOL-》ExportPackageLists获取;也有在DXE 驱动中通过gEfiHiiPackageListProtocolGuid 获取,前提是DXE image中有type 为HII的PE/COFF resource。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
BIOS(Basic Input/Output System)和UEFI(Unified Extensible Firmware Interface)是计算机系统中用于启动和初始化硬件设备的软件接口。HIIHuman Interface Infrastructure)是UEFI中的一个基本框架,它提供了一种标准化的方式来创建和管理图形用户界面(GUI)。下面是对BIOS/UEFIHII的基本概述: 1. BIOS:BIOS是一种早期的固件接口,在过去的计算机系统中广泛使用。它负责在计算机启动时初始化硬件设备,并加载操作系统。BIOS通常使用基于文本的用户界面(TUI),通过键盘输入来进行配置和设置。 2. UEFIUEFI是BIOS的后继者,它提供了更先进的系统启动和硬件初始化功能。UEFI支持更大的硬盘容量、更快的启动速度和更丰富的扩展性。与BIOS相比,UEFI使用图形用户界面(GUI)来提供更直观和易用的界面。 3. HIIHIIUEFI规范中定义的一个基本框架,它提供了一套标准化的API和工具,用于创建、管理和显示UEFI图形用户界面。HII使得开发人员可以轻松地设计和定制UEFI界面,以满足用户的需求。HII还支持多语言和可扩展的用户界面,提供了更好的用户体验。 总而言之,BIOS/UEFI是计算机系统中用于启动和初始化硬件设备的软件接口,而HIIUEFI中的一个基本框架,用于创建和管理图形用户界面。它们共同为计算机提供了更快、更稳定和更易用的启动和配置功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值