Partager via


Traitement des mises à jour

Une fois que des packages de mise à jour de microprogramme ont été appliqués et que le système a été redémarré par la suite, le chargeur du système d’exploitation Windows charge tous les fichiers de charge utile du microprogramme (dans cet exemple, firmware.bin) dans la mémoire physique. Le chargeur de système d’exploitation Windows crée des en-têtes de capsule à l’aide des informations de l’entrée ESRT correspondante de chaque mise à jour, qui décrivent le GUID et les indicateurs à utiliser lors de l’appel d’UEFI UpdateCapsule. Lors de la définition du champ d’indicateurs de chaque en-tête de capsule, le chargeur de système d’exploitation Windows définit toujours CAPSULE_FLAGS_PERSIST_ACROSS_RESET et CAPSULE_FLAGS_INITIATE_RESET. Le chargeur de système d’exploitation Windows peut également définir CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE pour les types de microprogrammes DEVICE_FIRMWARE, si l’indicateur de capsule a été spécifié dans l’INF pour le package de pilotes. Les indicateurs de capsule propriétaires peuvent également être spécifiés dans l’INF et, lorsqu’ils sont spécifiés, sont également inclus lors de l’appel d’UEFI UpdateCapsule

En se référant à l’exemple ESRT dans la définition de table ESRT et à l’exemple INF du package de pilote de mise à jour des ressources du microprogramme dans Création d’un package de pilotes de mise à jour, les en-têtes de capsule que le chargeur du système d’exploitation Windows crée pour passer dans UpdateCapsule se présenteraient comme suit.

Champ Valeur Commentaire
CapsuleGuid {SYSTEM_FIRMWARE} À partir de la classe FirmwareClass de l’entrée de ressource ESRT correspondante.
HeaderSize ... Padded to page-align firmware.bin start.
Indicateurs 0x50000 Conservez et lancez la réinitialisation.
CapsuleImageSize ... Taille de l’en-tête de capsule + taille de firmware.bin.

Notez que dans cet exemple, un seul des deux appareils définis dans le tableau ESRT a installé un nouveau package de pilotes de mise à jour des ressources de microprogramme. Si un package de pilote de mise à jour de ressource de microprogramme a été créé pour le deuxième appareil du tableau 2, puis installé sur le périphérique de ressource de microprogramme correspondant, un deuxième en-tête de capsule est créé comme suit :

Champ Valeur Commentaire
CapsuleGuid {DEVICE_FIRMWARE} À partir de la classe FirmwareClass de l’entrée de ressource ESRT correspondante.
HeaderSize ... Padded to page-align DEVICE. Démarrage bin.
Indicateurs 0x50000 Persistez sur l’ensemble et lancez, réinitialisez et remplissez la table système, OU avec 0x8010 à partir du CapsuleFlags de l’entrée de ressource ESRT correspondante.
CapsuleImageSize ... Taille de l’en-tête de capsule + taille de DEVICE. BIN.

Une fois que le chargeur du système d’exploitation Windows a chargé toutes les mises à jour de microprogramme en attente et créé les structures de données nécessaires pour les décrire, il appelle le service d’exécution UpdateCapsule, avant d’appeler ExitBootServices.

UpdateCapsule est appelé avant ExitBootServices lorsque le microprogramme de la plateforme a le contrôle exclusif de tous les appareils, y compris le périphérique de stockage. Une implémentation de microprogramme de plateforme de UpdateCapsule peut enregistrer les charges utiles de mise à jour du microprogramme dans le stockage persistant pour préparer une mise à jour ou prendre en charge une restauration de récupération.

Définition de table ESRT

Appareil plug-and-play

Création d’un package de pilote de mise à 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