变量存在时无法使用 EDK2 GetVariable2() 检索 UEFI 变量

问题描述

我已经通过 Linux efivarfs 接口创建了一个非易失性 UEFI 变量。我可以使用 efivar 命令行获取变量的值。但是,当我尝试在启动阶段通过 EDK2 Getvariable2() 获取该变量的值时,出现“未找到”错误

这是 .dec 文件和 C++ 代码段:

[Guids]
  gEfiMyTestGuid            = {0x11c564cd,0xb9f2,0x4eb8,{0x94,0x62,0xe0,0xba,0x74,0x56,0x42,0x36}}
  extern EFI_GUID   gEfiMyTestGuid;

  ....
  ....

  VOID       *Data;
  UINTN      DataSize;
  EFI_STATUS Status;

  
  Status = Getvariable2 (L"test",&gEfiMyTestGuid,&Data,&DataSize);
  if (EFI_ERROR (Status)) {
    Print (L"Failure error: %r\n",Status);
    return Status;
  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)