问题描述
据我所知,DXE调度程序首先加载Apriori文件中指定的驱动程序。然后加载其他考虑的依赖项。 我想在AMITSE之前或之后加载实用程序。如果在AMITSE之后,这个主意是CreateEvent(EVT_SIGNAL_EXIT_BOOT_SERVICES,...,MAINFCN,...),但是在MAINFCN中我无法处理其他事件。 也许更好的策略是在收到EVT_SIGNAL_EXIT_BOOT_SERVICES时加载UEFI_APPLICATION?
我要解决的主要问题是AMITSE屏幕之间的执行驱动程序(邀请按键进入设置和设置屏幕)。
所以我尝试了:
- 将驱动程序放置在音量不同的位置-无法解决问题(驱动程序在AMITSE邀请屏幕后加载)。
- 在[depex]部分中输入TRUE-驱动程序根本没有加载。
- CreateEvent(..)-无法处理其他事件(以捕获按键)。
未尝试:
- 在引发启动服务之前引发引发事件以加载应用程序的驱动程序。
也许有更简单的方法?
解决方法
通过编写建议运行应用程序的驱动程序来解决。
创建事件并捕获EVT_SIGNAL_EXIT_BOOT_SERVICES的想法将不起作用,因为在此事件之后[实际上在ExitBootServices()之后),EFI系统表的多个字段应设置为NULL。其中包括ConsoleInHandle,ConIn,ConsoleOutHandle,ConOut, StandardErrorHandle,StdErr和BootServicesTable。 [UEFI规范,版本2.8,第218-219页]