来自 UEFI 环境的设备 I/O

当 Windows OS 加载程序调用 UpdateCapsule 函数时,将执行 CapsuleHeaderArray 中包含的每个封装。 封装执行顺序取决于 UEFI 固件实现,而封装不能对其相对于其他封装的执行顺序做出任何假设,也不能依赖于其他封装。 每个封装都是一个独立有效负载,包含用于管理更新和固件映像的可执行 UEFI 代码。

调用封装时,封装中包含的可执行代码负责打开与目标设备的通信通道。 相应的通道将取决于系统的设备拓扑、目标设备的功能以及特定 UEFI 实现提供的 UEFI 启动服务和驱动程序。 封装实现者可能需要咨询 UEFI BIOS 供应商,了解目标 UEFI 环境中提供的选项。 通常,通过对给定设备使用 UEFI 设备驱动程序来建立通信。 此驱动程序使封装更新代码能够使用适当的协议通过已知设备路径绑定到该设备。

建立通信后,更新管理代码会将固件映像写入目标设备。 完成更新后,相应的返回状态代码将写入该设备在 ESRT 中的固件资源条目。 然后,更新管理代码将控制权返回到 UpdateCapsule 函数。

有关 UpdateCapsule 函数、封装结构以及 UEFI 启动服务驱动程序和协议的详细信息,请参阅 UEFI 规范

ESRT 表定义

即插即用设备

创作更新驱动程序包

处理更新

无缝危机预防和恢复

固件更新状态