紧接所有DXE驱动程序加载之后,EFI应用程序是否可以在BDS阶段之前自动加载并执行? 如果我将应用程序包含在DXE驱动程序后面的.fdf文件中,它会自动加载并执行吗?在BDS阶段之前,EFI应用程序能否自动加载并执行?
4
A
回答
1
这个问题是非常委员会,我只会用我的答案划伤表面。请阅读我提到的文档以获取更多信息。
如果您的硬件具有完整的UEFI固件源代码,那么您可以添加UEFI模块以便在BDS阶段之前执行。否则,您可以通过使用bcfg
shell命令添加UEFI应用程序,并通过检查this question,仅影响引导顺序(在调用ExitBootServices
之前)。
如果要在BDS之前执行代码,则必须是DXE模块(即DRIVER
,RUNTIME_DRIVER
)。有很多可以使用的模块类型,具体取决于您的使用情况。有关模块类型的更多信息,请参阅INF file specification的附录G.
添加到FDF
文件是不足以执行代码的。 FDF
文件仅描述闪存布局:每个二进制文件在最终闪存映像中的位置和位置。要添加DXE驱动程序,您还必须将INF
文件添加到平台DSC
文件中。接下来的事情就是在INF正确[Depex]
部分,它可以是简单的:
[Depex]
TRUE
,你必须要了解的最后一件事是DXE Dispatcher
。每次启动DXE Dispatcher
迭代知道图像列表并调用EFI_DRIVER_BINDING_SUPPORTED
函数(由EFI_DRIVER_BINDING_PROTOCOL
定义)。此方法应检查平台中是否支持所支持的硬件。如果EFI_DRIVER_BINDING_SUPPORTED
返回成功,则将调用其他驱动程序绑定方法(EFI_DRIVER_BINDING_START
),该方法启动设备。入口点只能用于协议注册,不建议在入口点启动设备。
有用的资源:
- EDK II Specifications - 规范对各种文件类型(
INF
,FDF
,DSC
,DEC
等) - Developer Resources - 司机作家指南和驱动程序向导。
- EDK2 sourceforge - 约EDK2
相关问题
- 1. 在启动时自动运行EFI应用程序
- 2. Supervisord-在启动应用程序/程序之前执行命令
- 3. 通过分阶段下载加速应用程序加载
- 4. 如何在运行卸载程序之前自动停止应用程序?
- 5. 使用flask/python框架自动下载并执行可执行应用程序
- 6. 自动启动并运行C#VSTO加载项应用程序
- 7. 加载引导程序的第二阶段并启动它
- 8. 在登录之前在Windows启动时加载应用程序
- 9. 应用程序路由是否会自动加载并在Ember应用程序中加载application.hbs?
- 10. 在启动应用程序之前重新加载React Native Javascript?
- 11. AngularJS:如何在应用程序加载之前加载json feed?
- 12. Eclipse应用程序删除按钮并自动执行程序
- 13. Gradle在执行阶段,动态添加和执行任务
- 14. Android - 在应用程序启动之前加载并调整图像大小?
- 15. XA两阶段提交并在准备阶段执行?
- 16. 在执行php之前加载JQUery Mobile
- 17. 在加载UI之前执行代码
- 18. 在页面加载之前执行Javascript
- 19. 如何在执行Selenium Web驱动程序测试之前自动启动ASP.NET MVC Web应用程序?
- 20. 在应用程序自动运行之前是否需要输入iPhone密码?
- 21. 应用程序加载阶段和内存泄漏狩猎
- 22. 自动执行应用程序部署
- 23. 在编译阶段之前构建并运行maven模块
- 24. 执行一个应用程序,并等待它加载
- 25. 在执行setup方法之前,“where”是否加载数据?
- 26. 在执行linq之前,DomainService是否加载所有实体?
- 27. 如何在加载应用程序之前添加搜索功能
- 28. 当前AppDomain加载应用程序库之外的程序集?
- 29. 应该在程序执行之前加载存储在.data或.bss段中的静态或全局数据吗?
- 30. 控制台应用程序在执行回调之前退出
非常有用的资源库你的意思_specifically_的BDS阶段之前,或者仅仅是默认启动映像启动之前?或者更确切地说 - 你能告诉我们你想要解决这个问题吗? – unixsmurf