BIOS知识枝桠——HII

HII OverView

在这里插入图片描述
HII(Human Interface Infrastructure), 定义了一套管理用户输入的基础架构,支持多种类型的用户输入。在这个架构中HII 数据库处理底层位置,负责提供用户安装、卸载及使用各种字符串、字体及图片等资源的接口。
上图展现了HII 的基本架构。
HII DataBase: 对HII 的所有数据进行管理。
Setup Browser: 负责和用户进行交互,用户的输入输出,修改值时会获取到对应的数据然后通知HII Driver进行保存或者其他,还有一个Display模块是负责显示的。
这一套框架加载的时候是在BDS阶段,启动UI界面,Setup Browser一直监视着用户的改动,通过HIIDriver存储改动到database或是EFI Variable里面去,保证下次启动的时候改动仍然生效。

HII Protocol

Font Protocol: 字符相关,字符串图像,Sting ID图像,获取字形,获取字体信息
String Protocol: String 相关操作,New – Get – Set – String ; Get Language & 2nd Language
Image Protocol: New – Get – Set – Image ; Draw Image, Draw Image ID
Database Protocol: 管理HII每个组件的数据,New – Remove- Update – List – Export Lists – Get Handle Package;Find- Get- Set Keyboard layout;Register, Unregister Package Notify

通常遇到的会是String Protocol,但实际上也不会直接去调用String Protocol,在开发过程中,为了方便开发,在MdeMoudlePkg里面添加了一个HI Lib,提供了常用的Service足够满足日常开发。
在这里插入图片描述
对于HII Driver来说,首先要把自己的HII Package List install上去,Driver里面可能有String Package ,Form Package,这个就需要打包install到HII Database 里面进行统一管理,这样Setup Browse就知道有哪些信息并进行显示。除此以外,HII Driver还需要produce一个Config Access Protocols,这个Protocol进行和UI方面的数据交互,对于用户来说,在setup page修改的选项会由setup browser监控后同步HII Driver,这个Protocol包含三个API,ExtractConfig (读取当前的设置状态值)、RouteConfig(存储用户修改好的信息,由HII Driver决定)、CallBack(对用户的修改动作作出响应)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值