USB 刷写支持的 UEFI 要求

Microsoft 提供了多个基于 USB 的闪存解决方案,用于工程和制造环境。 为了使设备与这些工具一起使用,设备上的 UEFI 环境必须满足本主题中列出的要求。

这些与闪烁相关的要求扩展了 UEFI 要求中列出的 UEFI 要求,这些要求适用于Windows 10 移动版的所有 Windows 版本和 UEFI 要求。

所需的 UEFI 协议

协议 要求详细信息
USB 函数协议 对于 USB 3.0 上的 USB 闪烁,固件必须实现 UEFI USB 功能协议修订0x00010002或更高版本,包括对 EFI_USBFN_IO_PROTOCOL的支持。ConfigureEnableEndpointsEx 函数。 有关详细信息,请参阅 UEFI USB 函数协议
BlockIO Microsoft 提供的 USB 闪存解决方案选择第一个返回的指针,用于刷写的非零大小的块 I/O 存储设备。 设备可以是不可移动或可移动存储。

UEFI 异步事件(可选)

尝试在闪烁期间读取或写入磁盘的 UEFI 组件必须实现对 UEFI 异步事件(EFI_EVENT_GROUP_FIRMWARE_DESYNC)的支持,如下表所述。

要求 说明
UEFI 启动服务支持 UEFI 固件必须支持 UEFI 2.3.1 规范第 6.1 节中定义的事件、计时器和任务优先级服务。
事件组 GUID Microsoft 使用以下 GUID 定义EFI_EVENT_GROUP_FIRMWARE_DESYNC:{24FA5E72-1A82-49A2-970B-3230372662A5}
UEFI 固件事件 确定需要定期刷新或同步其状态的所有 UEFI 固件组件。 在每个组件中,创建一个与EFI_EVENT_GROUP_FIRMWARE_DESYNC和 NotifyFunction() 关联的事件,该事件导致组件停止刷新/同步回存储。 事件的 NotifyFunction() 应执行组件转换到非同步模式所需的任何清理操作。 完成此清理后,组件在下次设备重新启动之前,不得使用闪存刷新或同步其存储。 如果事件的 NotifyFunction 失败(),则 NotifyFunction() 不应返回EFI_SUCCESS。

以下代码示例演示固件如何创建事件组 GUID 事件:

gBS->CreateEventEx (
    EVT_NOTIFY_SIGNAL,
    TPL_CALLBACK,
    FIRMWARE_NOTIFICATION_FUNCTION,          // To be defined by SoC Vendor
    &FIRMWARE_NOTIFICATION_FUNCTION_CONTEXT, // To be defined by SoC Vendor
    &EFI_EVENT_GROUP_FIRMWARE_DESYNC,
    &Event                                   // Event returned by CreateEventEx
);

SoC 平台上 Windows 的最低 UEFI 要求

适用于所有 Windows 版本的 UEFI 要求

Windows 10 移动版的 UEFI 要求