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