UEFI概念龜速學習:服務和驅動

UEFI服務

UEFI用驅動的形式提供服務,因爲只有驅動才能常駐內存(應用程序不行),這種驅動稱之爲服務型驅動

驅動分2種,UEFI驅動模型驅動 和 DXE驅動。服務採用DXE驅動的方式開發

服務的開發分3步:

1. 服務接口的設計

2. 服務接口的實現

3. 服務驅動入口函數中gBS->InstallProtocolInterface,將Protocol的實例安裝到自身Handle上


UEFI驅動

驅動的驅動服務部分:

1. Protocol頭文件中定義一個Protocol(EFI_XXX_PROTOCOL),包括GUID,成員函數和變量的簽名

2. 驅動程序源文件中定義私有數據(XXX_PRIVATE_DATA),包括Protocol和相關信息

     這裏Protocol接口的實現要觸及硬件設備(寄存器)

驅動的框架部分:

1. 實現EFI_DRIVER_BINDING_PROTOCOL的三個服務Supported、Start和Stop

     Start服務負責爲私有數據分配內存、初始化私有數據,並在ControllerHandle上安裝協議(InstallProtocolInterface)

2. 實現Component Name Protocol和Component Name2 Protocol

3. 模塊入口函數中安裝EDBP,ECNP,ECN2P(EfiLibInstallDriverBindingComponentName2)到Image Handle


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章