Microsoft提供數個 USB 型閃爍解決方案,以用於工程和製造環境。 為了讓裝置與這些工具搭配使用,裝置上的 UEFI 環境必須符合本主題所列的需求。
這些與快閃相關的需求會擴充到套用至所有 Windows 版本 UEFI 需求中列出的 UEFI 需求。
必要的 UEFI 通訊協定
協定 | 需求詳細數據 |
---|---|
USB 功能協定 | 針對USB 3.0上的USB刷寫,韌體必須實作UEFI USB功能協議修訂0x00010002或更高版本,包括支援EFI_USBFN_IO_PROTOCOL.ConfigureEnableEndpointsEx功能。 如需詳細資訊,請參閱 UEFI USB 函式通訊協定。 |
BlockIO | Microsoft提供的 USB 閃爍解決方案會選取第一個傳回的指標,指向非零大小的區塊 I/O 儲存裝置進行閃爍。 裝置可以是非卸除式或卸載式存儲設備。 |
UEFI desync 事件 (選擇性)
嘗試在閃爍期間讀取或寫入磁碟的 UEFI 元件,必須實作對 UEFI 解除同步事件 (EFI_EVENT_GROUP_FIRMWARE_DESYNC) 的支援,如下表所述。
要求 | 描述 |
---|---|
UEFI 開機服務支援 | UEFI 韌體必須支援 UEFI 2.3.1 規格第 6.1 節中所定義的事件、定時器和工作優先順序服務。 |
事件群組 GUID | Microsoft 定義 EFI_EVENT_GROUP_FIRMWARE_DESYNC 的 GUID 如下:{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
);