UEFI shell控制台向.efi文件传入参数--通过protocol实现
目標(biāo)
通過(guò)控制臺(tái)傳入的參數(shù)為:
? ? ? ? Argc,傳入?yún)?shù)的個(gè)數(shù);
? ? ? ? Argv,存放參數(shù)字符串的字符指針數(shù)組。各參數(shù)保存為字符串,數(shù)組元素為字符串指針;
/// Parsed arg list converted more C-like format.///CHAR16 **Argv;UINTN Argc;實(shí)現(xiàn)
在UEFI shell中向.efi中傳入?yún)?shù),需要EfiShellInterface相關(guān)protocol--gEfiShellInterfaceGuid,及EFI_SHELL_INTERFACE;
? ? ? ??Protocol使用之前進(jìn)行LocateProtocol /?OpenProtocol 操作(BootServices),Status = EFI_SUCCESS表示相關(guān)protocol已install且可以使用。推薦使用OpenProtocol,傳入ImageHandle,其他傳入的參數(shù)參考source。LocateProtocol可能會(huì)失敗。這與protocol在handle上的掛載規(guī)則有關(guān),不展開(kāi)講。
? ? ? ? ?ImageHandle,Dxe_module傳入?yún)?shù)。
? ? ? ? ?Guid:見(jiàn)source code。
? ? ? Argc,Argv包含在EFI_SHELL_INTERFACE結(jié)構(gòu)體中;結(jié)構(gòu)體及成員定義見(jiàn)Bios sourcecode,將定義所在頭文件#include(Project中有對(duì)應(yīng)頭文件?) 或?qū)⑾嚓P(guān)類型定義從其他Bios sourcecode復(fù)制過(guò)來(lái)(未包含類型定義所在頭文件)。
P.s. 成員類型定義要在EFI_SHELL_INTERFACE結(jié)構(gòu)定義之前;
? ? ? ??根據(jù)Build錯(cuò)誤添加未定義類型;
??
?
?
總結(jié)
以上是生活随笔為你收集整理的UEFI shell控制台向.efi文件传入参数--通过protocol实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LOAM_velodyne学习(四)
- 下一篇: 西刺代理python_Python四线程