UEFI系统固件架构详解
1. 协议接口与代理
每个协议接口除了句柄和协议外,还包含一个使用该协议接口的代理列表。此信息对于确保UEFI驱动程序能够安全地在给定句柄上启动或停止任何服务至关重要。代理可以是图像句柄(用于识别使用协议接口的驱动程序或应用程序),也可以是控制器句柄(用于识别使用协议接口的控制器)。
2. 事件
由于UEFI不支持中断,因此需要为想要使用中断驱动驱动程序模型的开发人员提供一种选择。事件就是为此类用途提供的解决方案。事件是一种对象,可在特定事件发生时提供同步和异步回调。UEFI规范定义了一组用于在预启动时管理事件、计时器和任务优先级的启动服务。UEFI图像允许进行诸如创建、关闭、发信号和等待事件、设置计时器以及提高和恢复任务优先级级别等操作。每个事件都与以下三个元素相关联:
- 事件的任务优先级级别(TPL)
- 通知函数
- 通知上下文
通知函数将根据其关联事件的状态变化(对于等待事件,每当检查或等待事件时,该函数将发出通知)或被发信号(从等待状态变为发信号状态)来执行。每次执行通知函数时,通知上下文都会传递给通知函数。TPL用于定义通知函数执行的优先级。这些规范定义了四个TPL级别,如下表所示:
| 任务优先级级别 | 值 | 描述 |
| — | — | — |
| TPL_APPLICATION | 4 | UEFI图像执行的最低优先级级别 |
| TPL_CALLBACK | 8 | 为大多数通知函数定义 |
| TPL_NOTIFY | 16 | 执行大多数I/O操作的中间优先级级别 |
| TPL_HIGH_LEVEL | 31
UEFI固件架构与启动流程解析
超级会员免费看
订阅专栏 解锁全文
36

被折叠的 条评论
为什么被折叠?



