緊接所有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