方法一 调用EFI_HII_DATABASE_PROTOCOL提供的NewPackageList()进行绑定
- 在模块的inf文件中需要定义UEFI_HII_RESOURCE_SECTION = TRUE
- 该方法不能满足模块中提供多个form的功能
方法二 调用HiiLib中的HiiAddPackages接口进行绑定
- inf文件中不需要定义UEFI_HII_RESOURCE_SECTION = TRUE
- 在源文件中需要声明extern UINT8 ModuleStrings[] 和 extern UINT8 VfrBin[]。在编译时由VfrCompile会将.uni和.vfr文件编译成UINT8 ModuleStrings[] 和 UINT8 VfrBin[]两个二进制文件数组。
- 该方法可以实现一个模块提供多个form的功能
- 要注意的是vfr文件的名称不能和源文件名称相同,否则编译可能会报错。因为vfr文件在编译时会被编译成vfrname.c如果vfr文件和源文件中某一.文件重名,会导致编译出错。
文章介绍了在UEFI模块中创建和绑定HII包的两种方法。方法一是使用EFI_HII_DATABASE_PROTOCOL的NewPackageList(),但限制了只能绑定一个form。方法二是通过HiiLib的HiiAddPackages接口,允许一个模块提供多个form,但需要注意Vfr文件的命名不能与源文件冲突,以避免编译错误。
1070

被折叠的 条评论
为什么被折叠?



