UEFI原理与编程实践--GUI之Setup界面分析一

formset &endformset

表单集,Setup设置界面的一个页面,该页面内的内容都需要放在表单集内

Example:
	formset guid  = MAIN_FORM_SET_GUID,
    	title     = STRING_TOKEN(STR_MAIN),
    	help      = STRING_TOKEN(STR_MAIN_HELP),
    	class     = MAIN_FORM_SET_CLASS,
    	subclass  = 0,
		….
	endformset;

Definitions:
guid: GUID for this formset.
title: Title strings for this formset.
help: help strings for this formset.
class and subclass: can be used for DXE driver.

form & endform

表单,包含在表单集内:

form formid = AUTO_ID(MAIN_MAIN),
        title = STRING_TOKEN(STR_MAIN);
	…..	
	endform.

varstore

用于定义设置选项将引用的变量,varstore语法需要放在formsetform之间

varstore VARIABLE_STRUCTURE,
        key/varid   = VARIABLE_ID,
        name  = VARIABLE_NAME,
        guid  = VARIABLE_GUID;

VARIABLE_STRUCTURE:保存setup variable的一个结构体

VARIABLE_ID:EFI_VARSTORE_ID  VarStoreId使用

VARIABLE_NAME:相当于结构体的定义:VARIABLE_STRUCTURE  VARIABLE_NAME

VARIABLE_NAME.OnboardVGA=1;

goto

用于转到另一个表单页面,就像超链接一样,转到表单和尾页之间。

Example:
	goto FORM_ID, 
	prompt = STRING_TOKEN(STR_FORM),
	help = STRING_TOKEN(STR_FORM_HELP);
	Definitions:
		FORM_ID: define which form will display.
		prompt: Strings for the goto syntax’s Name.
		help: help strings.

subtitle

用于在页面中显示字符串,需要放在表单和尾端表单之间。

Example:
	subtitle text = STRING_TOKEN(STR_SUB_TITLE);
	Definitions:
		text: text strings which will display.

text 

用于在页面中显示文本字符串,需要放在表单和尾端表单之间

Example:
     text 
        help   = STRING_TOKEN(STR_MEMORY_SIZE_HELP),
        text   = STRING_TOKEN(STR_MEMORY_SIZE_NAME),
        text   = STRING_TOKEN(STR_MEMORY_SIZE_VALUE),
        flags  = 0,
        key    = 0;
	Definitions:
		help: help strings.
		text: Text string in left side.
		text: Text string value in right side, usually will be updated in each boot.
		flags: used for special control, like dynamic text.
		key: used for special control.

subtitle->text,相当于分支,这种就是单纯的显示字符串,不可更改

subtitle text = STRING_TOKEN(STR_SUB_TITLE);
   
    text 
        help   = STRING_TOKEN(STR_MEMORY_SIZE_HELP),
        text   = STRING_TOKEN(STR_MEMORY_SIZE_NAME),
        text   = STRING_TOKEN(STR_MEMORY_SIZE_VALUE),
        flags  = 0,
        key    = 0;

checkbox & endcheckbox

用于创建一个复选框,让用户选择是或否,需要将其置于表单和结束表单之间。

 checkbox varid  = SETUP_DATA.OnboardVGA,
        prompt = STRING_TOKEN(STR_ONBOARD_VGA_PROMPT),
        help = STRING_TOKEN(STR_ONBOARD_VGA_PROMPT_HELP),
        flags = 1, 
    endcheckbox;


Definitions:
		varid: reference variable for this checkbox question.
		prompt: name for the checkbox.
		help: help strings.
		flags: default value for this question, 1=On 0=Off.

oneof & endoneof

用于创建具有更多选择的选项

oneof varid   = SETUP_DATA.Value,
        prompt    = STRING_TOKEN(STR_PROMPT),
        help      = STRING_TOKEN(STR_HELP),
        option
            text  = STRING_TOKEN(STR_OPTION1),
            value = 0,
            flags = DEFAULT;
        option
            text  = STRING_TOKEN(STR_OPTION2),
            value = 1,
            flags = 0;
    endoneof;
	Definitions:
		varid: variable which referenced by this question.
		prompt: question name string.
		help: help strings for this question.
		option: option start syntax.
		text: text strings for this option.
		value: variable value, which will be write into NVRAM.
		flags: used to define the state for this option, 0 means nothing, set to 				DEFAULT will let this option become a default setting.

 grayoutif & suppressif

用于item的变灰不可选以及是否隐藏

ideqval:如果变量的值等于某个值,则表示变灰或者隐藏。

以endif结束

suppressif ideqval SETUP_DATA.UsbLockHide == 1;
            oneof   varid   = SETUP_DATA.Usb,
              prompt = STRING_TOKEN(STR_ALL_USBPORTS_PROMPT),
              help= STRING_TOKEN(STR_ALL_USBPORTS_HELP),
              option 
				text = STRING_TOKEN(STR_DISABLE), 
			  	value=1,
              	flags=0 | RESET_REQUIRED;
              option 
				text = STRING_TOKEN(STR_ENABLE), 
				value=0,
 				flags=DEFAULT | MANUFACTURING | RESET_REQUIRED;
            endoneof;
        endif;

numeric & endnumeric

用于创建允许用户输入数字的字段,也就是说可以设置数字,不过最多不大于65535

numeric varid = TIMEOUT.Value,
            prompt    = STRING_TOKEN(STR_BOOT_TIMEOUT),
            help      = STRING_TOKEN(STR_BOOT_TIMEOUT_HELP),
            minimum   = 0x1,
            maximum   = 0xffff,
            step      = 1,
            default   = DEFAULT_BOOT_TIMEOUT,
        endnumeric;
	Definitions:
		prompt: Name string for this question.
		help: help string for this question.
		minimum: minimum number of this question.
		maximum: maximum number of this question.
		step: step for this question.
		default: default value.

password & endpassword

用于为输入密码创建字段

 password varid  = AMITSESETUP.AdminPassword,
           prompt      = STRING_TOKEN(STR_ADMIN_PASSWORD),
           help       = STRING_TOKEN(STR_ADMIN_PASSWORD_HELP),
           flags       = 0,
           minsize     = 0,
           maxsize     = PASSWORD_MAX_SIZE,
           encoding    = 1,
       endpassword;
	Definitions:
		minsize: minimum length for the password.
		maxsize: maximum length for the password.
		encoding: encoding or not, 1 = enable encoding.

LABEL

用于指向VFR文件中的地址,然后DXE驱动程序可以在VFR文件中的指定位置动态添加或修改item。

label LABEL_NETWORK_DEVICE_LIST_ID;
label LABEL_END;

  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: UEFI(Unified Extensible Firmware Interface)是一种固件接口标准,用于用于替换传统的BIOS(Basic Input/Output System)固件,旨在提高系统启动速度、安全性和可靠性。 UEFI原理编程完整版PDF是一份详细的技术指南,提供了UEFI开发所需的全部信息,包括如何设计UEFI驱动程序、应用程序和固件,以及如何使用UEFI的各种功能。 这份PDF文件将UEFI划分为四个主要模块:启动服务、管理服务、硬件抽象层和UEFI Shell。每个模块都有详细的描述和示例代码,此外还包含了UEFI的系统架构、数据结构、驱动程序与应用程序的开发方法等内容。 此外,UEFI原理编程完整版PDF还介绍了UEFI与安全性、多核技术、嵌入式系统等方面的关系,并为读者提供了关键的UefiSpec和UefiDebugTools库文档。 总之,UEFI原理编程完整版PDF是一份权威的技术指南,涵盖了UEFI方方面面的内容,非常适合开发人员和工程师学习和参考。 ### 回答2: UEFI(Unified Extensible Firmware Interface)是一种新型的启动编程接口,它替代了旧版的BIOS(基本输入输出系统)。UEFI原理编程可以帮助开发人员理解UEFI的工作原理编程技巧。 UEFI拥有完善的安全性和可靠性,其编程方式也十分灵活。与BIOS相比,UEFI可以支持更多的硬件平台和更大的硬盘容量,同时也可以优化启动速度和程序的执行效率。 UEFI原理编程pdf完整版可以帮助开发人员更好地了解UEFI的概念和架构,并提供丰富的代码示例,帮助开发人员快速掌握UEFI编程技能。除此之外,该书还介绍了UEFI的启动流程、安全策略、UEFI应用的开发和调试等内容,对于想要深入学习UEFI编程的开发人员来说是一本很有价值的参考书。 总之,UEFI原理编程pdf完整版是一本优秀的技术参考书,其内容涵盖了UEFI的方方面面,对于想要深入了解和运用UEFI的开发人员来说具有很高的参考价值。 ### 回答3: UEFI(Unified Extensible Firmware Interface)是一种新型的系统固件接口,它为操作系统与硬件之间提供了一种标准的接口。相比传统的BIOS,UEFI可以支持更多的硬件功能,同时也更加安全和灵活。 UEFI原理主要包括以下几个方面:1、UEFI接口包括了启动管理器,硬件抽象层,运行环境和应用层等模块;2、UEFI支持模块化设计和驱动加载,可以动态地加载和卸载硬件驱动,提高了系统灵活性和安全性;3、UEFI使用GUID Partition Table(GPT)替代MBR分区表,支持更大的硬盘容量和更稳定的系统启动;4、UEFI还支持Secure Boot功能,可以防止恶意程序篡改启动软件和系统文件,提高了系统安全性。 关于UEFI编程,需要掌握以下几个核心内容:1、UEFI开发环境的搭建,需要熟悉UEFI规范以及系统固件接口的程序编写;2、UEFI应用程序的设计和开发,可以利用UEFI提供的应用程序接口(API)或者开发自定义的应用程序;3、UEFI驱动程序的编写,需要掌握UEFI驱动程序的架构和编程模型;4、UEFI启动管理器的开发,需要熟悉UEFI启动管理器的设计和实现。 总之,UEFI是一种新型的系统固件接口,可以为操作系统和硬件提供一个标准的接口,提高系统的安全性和灵活性。对于UEFI编程的学习和掌握,则需要对UEFI规范和程序设计有深入的了解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值