上一节介绍了UEFI Driver模型的实现方式,本节介绍UEFI Driver的加载过程,驱动程序的加载分为两个过程,即注册和执行:
1、注册:在DXE阶段,通过LoadImage();函数驱动程序加载到内存,生成Image Handle,然后通过调用StartImage();调用驱动程序入口函数(xx.inf文件中定义的EntryPoint函数),入口函数中通过DRIVER_BINDING_PROTOCOL类型的实例,将驱动程序(Support();、Start();、Stop();函数)注册到Image Handle上,仅是注册,驱动程序不会执行,即不会操作任何硬件。详细的代码实现过程为:
图1 DXE入口及启动DXE dispatcher