UEFI Variable

 一、已经定义的全局 Variable

本节定义了一组具有体系结构定义含义的变量。除了定义的数据内容之外,每个这样的变量都有一个体系结构定义的属性来指示可能被访问的数据变量。具有NV属性的变量是非易失性的。这意味着他们的值经历重启和断电重启后仍保持不变。任何不具有此属性的环境变量的值将在电源从系统中移除时丢失,并且固件保留内存的状态也不会被保留。具有BS属性的变量仅在调用EFI_BOOT_SERVICES.ExitBootServices()之前可用。这意味着只能在预启动环境中检索或修改这些环境变量。它们对于操作系统是不可见的。具有RT属性的环境变量在ExitBootServices()被调用前后可用。可以在预引导环境和操作系统中检索和修改这种类型的环境变量。属性为AT的变量是具有基于时间的经过身份验证的写访问的变量。

所有体系结构定义的变量使用EFI_GLOBAL_VARIABLE VendorGuid;

为了防止与未来可能的全局定义变量的名称冲突,其他内部固件数据变量在这里没有定义,必须使用唯一的VendorGuid保存,而不是使用EFI_GLOBAL_VARIABLE或任何其他由UEFI规范定义的GUID。实现必须只允许在UEFI规范中记录变量时使用UEFI规范定义的VendorGuid创建变量。

 

二、Variable Services

变量被定义为键/值对,由标识信息加上属性(键)和任意数据(值)组成。变量用于存储平台中实现的EFI环境、EFI OS加载器和在EFI环境中运行的其他应用程序之间传递的数据。

尽管UEFI规范中没有定义变量存储的实现,但在大多数情况下,变量必须是持久的。这意味着平台上的EFI实现必须对其进行安排,以便在每次系统启动时保留传递给存储的变量,以便使用它们,至少在它们被显式删除或覆盖之前是这样。在某些平台上,这种非易失性存储的提供可能非常有限,因此在不能使用其他通信信息的方法的情况下,应该谨慎地使用变量。

 三、UEFI Variable 举例,Boot####

Variable NV+RT+BS 'Efi:Boot0000' DataSize = 5E
  00000000: 01 00 00 00 2C 00 49 00-6E 00 74 00 65 00 72 00  *....,.I.n.t.e.r.*
  00000010: 6E 00 61 00 6C 00 20 00-45 00 46 00 49 00 20 00  *n.a.l. .E.F.I. .*
  00000020: 53 00 68 00 65 00 6C 00-6C 00 00 00 04 07 14 00  *S.h.e.l.l.......*
  00000030: 67 D5 81 A8 B0 6C EE 4E-84 35 2E 72 D3 3E 45 B5  *g....l.N.5.r.>E.*
  00000040: 04 06 14 00 B7 D6 7A C5-15 05 A8 40 9D 21 55 16  *......z....@.!U.*
  00000050: 52 85 4E 37 7F FF 04 00-52 43 4D 26 22 B7        *R.N7....RCM&".*
Variable NV+RT+BS 'Efi:Boot2001' DataSize = 2A
  00000000: 01 00 00 00 04 00 45 00-46 00 49 00 20 00 55 00  *......E.F.I. .U.*
  00000010: 53 00 42 00 20 00 44 00-65 00 76 00 69 00 63 00  *S.B. .D.e.v.i.c.*
  00000020: 65 00 00 00 7F FF 04 00-52 43                    *e.......RC*
Variable NV+RT+BS 'Efi:Boot2002' DataSize = 28
  00000000: 01 00 00 00 04 00 45 00-46 00 49 00 20 00 44 00  *......E.F.I. .D.*
  00000010: 56 00 44 00 2F 00 43 00-44 00 52 00 4F 00 4D 00  *V.D./.C.D.R.O.M.*
  00000020: 00 00 7F FF 04 00 52 43-                         *......RC*
Variable NV+RT+BS 'Efi:Boot2003' DataSize = 24
  00000000: 01 00 00 00 04 00 45 00-46 00 49 00 20 00 4E 00  *......E.F.I. .N.*
  00000010: 65 00 74 00 77 00 6F 00-72 00 6B 00 00 00 7F FF  *e.t.w.o.r.k.....*
  00000020: 04 00 52 43                                      *..RC*

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值