Freigeben über


UEFI-Anforderungen für USB-Flashing-Unterstützung

Microsoft bietet mehrere USB-basierte Flashing-Lösungen für die Verwendung in Engineering- und Fertigungsumgebungen. Damit ein Gerät mit diesen Tools verwendet werden kann, muss die UEFI-Umgebung auf dem Gerät die in diesem Thema aufgeführten Anforderungen erfüllen.

Diese Anforderungen im Zusammenhang mit Flashing erweitern die UEFI-Anforderungen, die in UEFI-Anforderungen aufgeführt sind, die für alle Windows-Editionengelten.

Erforderliche UEFI-Protokolle

Protokoll Anforderungsdetails
USB-Funktionsprotokoll Für USB-Flash über USB 3.0 muss die Firmware die Revision des UEFI-USB-Funktionsprotokolls 0x00010002 oder höher implementieren, einschließlich der Unterstützung für die EFI_USBFN_IO_PROTOCOL. ConfigureEnableEndpointsEx-Funktion. Weitere Informationen finden Sie unter UEFI-USB-Funktionsprotokoll.
BlockIO Die von Microsoft bereitgestellten USB-Flashing-Lösungen wählen den ersten zurückgegebenen Zeiger auf ein Block E/A-Speichergerät mit einer Größe ungleich Null zum Flashen aus. Das Gerät kann ein nicht entfernbarer oder entfernbarer Speicher sein.

UEFI-Desync-Ereignis (optional)

UEFI-Komponenten, die versuchen, während des Flashings auf den Datenträger zu lesen oder zu schreiben, müssen unterstützung für das UEFI-desync-Ereignis (EFI_EVENT_GROUP_FIRMWARE_DESYNC) implementieren, wie in der folgenden Tabelle beschrieben.

Anforderung Beschreibung
Unterstützung für UEFI-Startdienste Die UEFI-Firmware muss die Ereignis-, Zeit- und Aufgabenprioritätsdienste gemäß Abschnitt 6.1 der UEFI 2.3.1-Spezifikation unterstützen.
Ereignis-Gruppe GUID Microsoft definiert die EFI_EVENT_GROUP_FIRMWARE_DESYNC mit der folgenden GUID: {24FA5E72-1A82-49A2-970B-3230372662A5}
UEFI-Firmwareereignisse Identifizieren Sie alle UEFI-Firmwarekomponenten, die den Zustand regelmäßig mit dem Speicher aktualisieren oder synchronisieren müssen. Erstellen Sie in jeder dieser Komponenten ein Ereignis, das dem EFI_EVENT_GROUP_FIRMWARE_DESYNC und einer NotifyFunction() zugeordnet ist, das bewirkt, dass die Komponente die Aktualisierung/Synchronisierung zurück zum Speicher beendet. Die NotifyFunction() des Ereignisses sollte alle Bereinigungsvorgänge ausführen, die für die Komponente erforderlich sind, um zum desynchronisierten Modus zu wechseln. Nach dieser Bereinigung darf die Komponente ihren Storage bis zum nächsten Neustart des Geräts nicht aktualisieren oder wieder mit dem Flash synchronisieren. Wenn die NotifyFunction des Ereignisses fehlschlägt(), sollte die NotifyFunction() nicht EFI_SUCCESS zurückgeben.

Im folgenden Codebeispiel wird veranschaulicht, wie firmware das Ereignis "Ereignisgruppen-GUID" erstellen kann:

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
);

Mindestanforderungen an UEFI für Windows auf SoC-Plattformen

UEFI-Anforderungen, die für alle Windows-Editionen gelten