UEFI-Uefi_Application

17 篇文章 1 订阅

shell应用模块

同样也是工作需要,不知不觉写过两种Uefi_Application,简单一点的是标准应用模块,它只需要build出来一个.efi直接放在shell下执行;复杂一点的是shell应用模块,它build出来也是一个.efi,但是可以带命令行参数。

标准应用模块

    1. 标准应用模块入口函数一般设定为UefiMain,入口参数与一般DXE驱动一样为ImageHandle and SystemTable,返回EFI_STATUS;头文件根据需求可能需要包入UefiApplicationEntryPoint.h,UEFILib.h 等文件。

EFI_STATUS
EFIAPI
UefiMain (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  )
{   
    EFI_STATUS          Status = EFI_SUCCESS;
   return Status;
}

2. 还需要一个工程文件即.inf,将模块加载到工程中编译;ENTRY_POINT一般设置为UefiMain,MODULE_TYPE必须设置为UEFI_APPLICATION;source/package/library 根据需求填入,让编译无错误完成;这样编译生成的ProjectOEM.efi 即可以在shell下直接使用。

Shell应用模块 

    1. Shell应用模块入口函数一般为ShellCEntryLib,它会调用ShellAppMain(IN UINTN Argc, IN CHAR16 **Argv) ,这个函数可以在执行命令时输入指定参数, 因此我们的源文件中要实现ShellAppMain函数;头文件中需要包入ShellCEntryLib.h ,ShellLib.h 等。

EFIAPI
ShellAppMain (
  IN UINTN Argc,   
  IN CHAR16 **Argv  
  )
{

EFI_STATUS          Status = EFI_SUCCESS;
   return Status;

}

Shell 库中SHELL_PARAM_ITEM ParamList[]可以定义命令,ShellCommandLineGetFlag与ShellCommandLineGetRawValue 能读取命令(-dump)以及命令行中的数据(0x650)

app.efi  -dump  0x650

    2. 工程文件中定义ENTRY_POINT为ShellCEntryLib,MODULE_TYPE设置为UEFI_APPLICATION;[LibraryClasses]中需要ShellCEntryLib, [Packages]中需要引用MdePkg和ShellPkg,其他根据需求填入,保证build pass

### 回答1: ds918 6.2.3-25426_uefi_gpt_expand.7z 是一个压缩文件,文件格式为7z,压缩程序为7-Zip。这个文件可能是一个操作系统或软件镜像文件。 从文件名可以看出,此文件属于 DS918,可能是指 Synology DS918+ 系列网络存储设备。6.2.3-25426 是此设备上的一个固件版本号,UEFI 表示此固件可以通过 UEFI(Unified Extensible Firmware Interface)引导。GPT 则是指分区表的类型,扩展(expand)可能表示对固件的功能或分区进行扩展。 由于是一个压缩文件,我们需要解压缩才能进一步了解该文件的内容。我们可以使用 7-Zip 等压缩软件进行解压缩。解压缩后,会得到一个或多个文件,这些文件可能包含操作系统、驱动程序、设置文件等。根据文件的具体内容,我们可以选择将其安装到相应的设备上,以更新或扩展设备的功能。 总之,ds918 6.2.3-25426_uefi_gpt_expand.7z 是一个压缩文件,可能包含了 Synology DS918+ 网络存储设备的固件或软件镜像文件。通过解压缩该文件,我们可以获得一些文件来更新设备的功能或扩展其分区。 ### 回答2: ds918 6.2.3-25426_uefi_gpt_expand.7z 是一个文件的名称,它可能是一个压缩文件。后缀名为".7z" 表示这是7-Zip压缩文件。这个文件似乎与DS918 同型号的一款产品、6.2.3 版本的软件以及UEFI和GPT具有一定的关联。 根据文件名的命名规则推测,这个文件可能是一个特定版本的DS918所需要的升级或者扩展包。 "ds918" 可能指的是某款硬件型号或型号系列的产品。 "6.2.3-25426" 则可能是DS918所需要的操作系统版本号。 "uefi" 和 "gpt" 可能表示该文件适用于启动模式为UEFI且硬盘格式为GPT的设备,这是一种比传统的BIOS和MBR引导方式更先进的启动模式和硬盘分区方案。 如果你有一款DS918硬件设备,可以根据这个文件名来判断是否需要进行升级或扩展。你可以解压缩这个文件并按照文档中的指引进行安装。但在进行任何操作之前,请确保你已经备份了重要的数据,并根据官方的操作指南或咨询相关专业人士,以避免不必要的风险或损失。 ### 回答3: ds918 6.2.3-25426_uefi_gpt_expand.7z是一个文件,它可能是一个软件包或压缩文件。其中的扩展名“.7z”表示它是7-Zip压缩格式。ds918可能是指特定的硬件设备或软件版本,而6.2.3-25426_uefi_gpt_expand可能是该版本的特定功能或补丁。 根据文件名中的“expand”一词,可以推测这个文件可能包含了在UEFI(统一的扩展固件接口)系统中进行GPT(GUID分区表)扩展的相关内容。UEFI是一种更新的固件接口标准,用于替代传统的BIOS系统,而GPT是一种磁盘分区表的格式,用于取代传统的MBR(主引导记录)。 鉴于文件的特点,它可能是用于在ds918或使用该软件版本的设备上,通过UEFI方式对GPT分区进行扩展的一项功能或工具。可能是用于管理磁盘空间、重新分配分区容量或创建新的分区等。 要使用该文件,您需要将其下载到您的计算机上,并使用兼容的文件解压工具(例如7-Zip),将其解压缩到目标位置。随后,您可能需要遵循包含的说明或使用相应软件工具来执行相关功能,以实现您的需求。 请注意,我的回答仅基于文件名推测,具体内容仍然需要根据实际情况来确定。如果您需要更多准确的信息,建议您查阅相关文档或软件说明。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值