找到一个uefi shell应用程序的ImageHandle。或模块

时间:2015-02-24 06:36:26

标签: bootloader bios firmware uefi

我有一个uefi shell应用程序和一个uefi模块,提供类似的功能,我试图将它们合并为一个实体,可以作为Boot Menu中的模块或从uefi shell执行。 是否可以创建一个可以像这样执行的efi应用程序?

模块的入口点是

ModMain (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )

而对于uefi shell应用程序。它的,

MyAppMain (
  IN UINTN            Argc,
  IN CHAR16           **Argv
  )

我是否可以隐式获取efi图像的ImageHandle(类似于C ++对象中的This指针)?

由于

1 个答案:

答案 0 :(得分:0)

什么是"模块"在UEFI? UEFI二进制文件只有两种类型--UEFI应用程序和PXE驱动程序;如果我确实理解了这个问题,我会做以下事情:

  • "模块"是一个解析** argv;
  • 的常规UEFI应用程序
  • 主UEFI App LoadImage()"模块"并将句柄作为命令行参数传递;