Share via


Définition de table ESRT

Le pointeur vers la table ESRT est identifié via son GUID correspondant dans le EFI_CONFIGURATION_TABLE.

#define EFI_SYSTEM_RESOURCE_TABLE_GUID   \
{ 0xb122a263, 0x3661, 0x4f68,  0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80  }

Le tableau suivant décrit le format de la table ESRT et les entrées de ressource de microprogramme contenues dans le tableau.

Champ Valeur du tableau Longueur d’octets Décalage d’octets Description
Nombre de ressources du microprogramme 4 0 Nombre d’entrées de ressource de microprogramme dans l’ESRT. Ne doit pas être égal à zéro.
Nombre maximal de ressources de microprogramme 4 4 Nombre maximal d’entrées de tableau de ressources pouvant être ajoutées sans réaffecter la table. Doit être supérieur ou égal au nombre de ressources du microprogramme.
Version de la ressource de microprogramme 8 8 Version d’entrée de ressource de microprogramme. Cette valeur doit être définie sur 1
Tableau d’entrée de ressource de microprogramme Entrée de ressource de microprogramme 0
Firmware, classe 16 16 GUID qui identifie un composant de microprogramme qui peut être mis à jour via la capsule de mise à jour. Ce GUID sera transmis au service d’exécution de la capsule de mise à jour UEFI en tant que paramètre CapsuleGuid de l’en-tête de la capsule de mise à jour lors de la mise à jour.
Type de microprogramme 4 32 Une des valeurs suivantes qui identifie le type de ressource de microprogramme :

0 : Inconnu

1 : Microprogramme système

2 : Microprogramme de l’appareil

3 : pilote UEFI
Version du microprogramme 4 36 Version actuelle du microprogramme, où un plus grand nombre représente une version plus récente. Le format de cette valeur n’est pas défini, mais doit inclure les nombres principaux et secondaires de version. Le format recommandé est le premier mot est principal et le deuxième mot est les numéros de version mineure.
Version de microprogramme prise en charge la plus faible 4 40 Version de ressource de microprogramme la plus basse vers laquelle une ressource de microprogramme peut être restaurée pour le système/appareil donné. Si un correctif lié à la sécurité est disponible dans cette version du microprogramme, la version la moins compatible doit être égale à la version actuelle du microprogramme.
Indicateurs de capsule 4 44 Indicateurs qui seront transmis au service d’exécution de capsule de mise à jour UEFI en bits 0 à 15 du champ Indicateurs de l’en-tête de capsule de mise à jour (le système d’exploitation est chargé de configurer les bits 16 à 31 des indicateurs, comme défini par la section 7.5.3 de la spécification UEFI).
Dernière version de la tentative 4 48 Dernière version du microprogramme pour laquelle une mise à jour a été tentée. Cette valeur utilise le même format que version du microprogramme.
État de la dernière tentative 4 52 L’une des valeurs suivantes qui décrit l’état de la dernière tentative de mise à jour du microprogramme :

0 : Réussite

1 : Échec

2 : Ressources insuffisantes

3 : Version incorrecte

4 : Format d’image non valide

5 : Erreur d’authentification

6 : Événement d’alimentation - Secteur non connecté

7 : Événement d’alimentation - Batterie insuffisante
... Entrée de ressource de microprogramme 1

Le microprogramme UEFI de base doit allouer et remplir une table de configuration ESRT contenant une entrée de ressource système pour lui-même (microprogramme système). À titre d’illustration, dans ce guide, le microprogramme principal crée également une entrée supplémentaire représentant un appareil qui prend en charge la mise à jour du microprogramme d’appareil à l’aide du mécanisme de package de mise à jour du microprogramme.

Il doit toujours y avoir exactement une entrée décrivant le microprogramme système. Cette entrée est utilisée pour cibler une mise à jour du microprogramme système. Si une implémentation effectue des mises à jour du microprogramme du système et de l’appareil sous la forme d’une opération monolithique unique, l’entrée du microprogramme système doit être utilisée pour cibler la mise à jour. Dans tous les autres cas, les mises à jour du microprogramme d’appareil sont ciblées par une entrée ESRT décrivant le microprogramme de l’appareil.

La première étape consiste ensuite à générer des GUID pour représenter ces deux ressources de microprogramme, c’est-à-dire {SYSTEM_FIRMWARE} et {DEVICE_FIRMWARE}. Le tableau 2 montre un exemple de définition de table. Cet exemple suppose que les deux versions de microprogramme sont actuellement version 1 (Version du microprogramme == 1).

Champ Valeur du tableau Valeur Commentaire
Nombre de ressources du microprogramme 2 Ce tableau contient deux entrées de ressource de microprogramme.
Nombre maximal de ressources de microprogramme 2 Cette allocation de table contient suffisamment d’espace pour décrire un maximum de deux ressources.
Version de la ressource de microprogramme 1 La version du format d’entrée de ressource de microprogramme que ce tableau utilise est 1.
Tableau d’entrée de ressource de microprogramme Entrée de ressource de microprogramme 0
Firmware, classe (SYSTEM_FIRMWARE) Ce GUID identifie le microprogramme système à mettre à jour via PnP.
Type de microprogramme 1 Le type de microprogramme système est 1.
Version du microprogramme 1 La version actuelle du microprogramme système est 1.
Version de microprogramme prise en charge la plus faible 1 La version de microprogramme prise en charge la plus basse étant 1, le microprogramme ne peut pas être restauré vers une version antérieure à la version 1.
Indicateurs de capsule 0 Le microprogramme système ne définit aucun indicateur de mise à jour de capsule privée.
Dernière version de la tentative 1 La dernière version du microprogramme système pour laquelle une mise à jour a été tentée était la version 1.
État de la dernière tentative 0 La dernière tentative de mise à jour du microprogramme système a réussi.
Entrée de ressource de microprogramme 1
Firmware, classe (DEVICE_FIRMWARE) Ce GUID identifie le microprogramme de l’appareil à mettre à jour via PnP.
Type de microprogramme 2 Le type de microprogramme de l’appareil est 2.
Version du microprogramme 1 La version actuelle du microprogramme de l’appareil est 1.
Version de microprogramme prise en charge la plus faible 1 La version de microprogramme prise en charge la plus basse étant 1, le microprogramme ne peut pas être restauré vers une version antérieure à la version 1.
Indicateurs de capsule 0x8010 Le microprogramme de l’appareil définit des indicateurs de mise à jour de capsule privée (0x8010).
Dernière version de la tentative 1 La dernière version du microprogramme de l’appareil pour laquelle une mise à jour a été tentée est la version 1
État de la dernière tentative 0 La dernière tentative de mise à jour du microprogramme de l’appareil a réussi.

L’exemple ESRT ci-dessus est utilisé ailleurs dans cette documentation pour parcourir le processus de mise à jour du microprogramme et décrire la prise en charge de Windows pour le processus de mise à jour, ainsi qu’une implémentation de microprogramme prenant en charge.

Appareil plug-and-play

Création d’un package de pilote de mise à jour

Traitement des mises à jour

E/S de l’appareil à partir de l’environnement UEFI

Prévention et reprise des crises transparentes

État de la mise à jour du microprogramme