一、Protocol 介绍
Protocol是UEFI中重要概念之一,Protocol在UEFI中的角色相当于UEFI的接口函数。实际上,Proctol是UEFI环境的提供者何使用者之间的一种约定,双方根据这个协定进行通信。
UEFI中的Proctol引入了面向对象的思想:
- 使用struct来模拟 class 。
- 用函数指针(Proctol中的成员)模拟成员函数,此种函数的第一个参数必须是指向Protocol的指针,用来模拟 this 指针。
每个Proctol必须有唯一的GUID,获取方式:https://guidgen.com/
二、制作Protocol服务
Protocol | 功能 |
---|---|
InstallProtocolInterface | 对应的handle安装一个特定的 handle,如果传进去的handle为NULL,则会创建一个新的handle |
InstallMultipleProtocolInterfaces | 可以一次性安装多个protocol |
ReinstallProtocolInterface | 用一个新的protocol去替换原来的protocol |
RegisterProtocolNotify | 创建一个Event,当对应的protocol被安装的时候,就会single,调用callback</ |