|
试了一下,这个程序目前能执行以下操作:
1. 设置 BootCurrent
2. 设置 BootNext
3. 设置 BootOrder
4. 设置 Timeout
5. 设置 BootXXXX 的属性
6. 设置 BootXXXX 的名称
你还需要自己实现以下功能:
1. 新建 BootXXXX
2. 编辑 BootXXXX 的内容。
BootXXXX 就是形如 Boot0000, Boot0001, Boot0002 这样的 UEFI 环境变量,内容可以在 UEFI Spec 里面找到,
typedef struct _EFI_LOAD_OPTION {
UINT32 Attributes;
UINT16 FilePathListLength;
// CHAR16 Description[];
// EFI_DEVICE_PATH_PROTOCOL FilePathList[];
// UINT8 OptionalData[];
} EFI_LOAD_OPTION;
其中关键的就是那个 FilePathList 。
你需要把 efi 文件在 windows 下的路径 (E:\EFI\BOOT\grubx64.efi) 转化为 UEFI 的 DevicePath 格式。
DevicePath 具体长啥样请查阅 UEFI Spec。
顺便说一下,我就是楼上的匿名。
|
|