Condividi tramite


Elaborazione degli aggiornamenti

Dopo aver applicato tutti i pacchetti di aggiornamento del firmware e il sistema successivamente riavviato, il caricatore del sistema operativo Windows carica tutti i file del payload del firmware (in questo esempio firmware.bin) nella memoria fisica. Il caricatore del sistema operativo Windows crea intestazioni di capsule usando le informazioni della voce ESRT corrispondente di ogni aggiornamento, che descrive il GUID e i flag da usare quando si chiama UEFI UpdateCapsule. Nell'impostazione del campo flag dell'intestazione della capsula, il caricatore del sistema operativo Windows imposta sempre CAPSULE_FLAGS_PERSIST_ACROSS_RESET e CAPSULE_FLAGS_INITIATE_RESET. Il caricatore del sistema operativo Windows può inoltre impostare CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE per i tipi di firmware DEVICE_FIRMWARE, se il flag della capsula è stato specificato nel inF per il pacchetto driver. I flag di capsule proprietari possono essere specificati anche in INF e quando specificato verranno inclusi anche quando si chiama UEFI UpdateCapsule

Fare riferimento all'esempio ESRT nella definizione di tabella ESRT e nel pacchetto del driver di aggiornamento delle risorse del firmware INF in Creazione di un pacchetto di driver di aggiornamento, le intestazioni della capsula create dal caricatore del sistema operativo Windows creano per passare a UpdateCapsule saranno le seguenti.

Campo Valore Commento
CapsuleGuid {SYSTEM_FIRMWARE} Dalla voce firmware della risorsa ESRT corrispondente.
HeaderSize ... Riempimento per l'avvio firmware.bin allineato alla pagina.
Flags 0x50000 Rendere persistenti e avviare, reimpostare.
CapsuleImageSize ... Dimensioni intestazione della capsula + Dimensioni del firmware.bin.

Si noti che in questo esempio solo uno dei due dispositivi definiti nella tabella ESRT ha installato un nuovo pacchetto di driver di aggiornamento delle risorse del firmware. Se un pacchetto driver di aggiornamento delle risorse del firmware è stato creato per il secondo dispositivo nella tabella 2 e quindi installato nel dispositivo della risorsa firmware corrispondente, verrà creata una seconda intestazione della capsula come indicato di seguito:

Campo Valore Commento
CapsuleGuid {DEVICE_FIRMWARE} Dalla voce firmware della risorsa ESRT corrispondente.
HeaderSize ... Riempimento in base all'allineamento della pagina DISPOSITIVO. Avvio BIN.
Flags 0x50000 Rendere persistenti e avviare, reimpostare e popolare la tabella di sistema, OR con 0x8010 dalla voce della risorsa ESRT corrispondente CapsuleFlags.
CapsuleImageSize ... Dimensioni intestazione della capsula + Dimensioni del DISPOSITIVO. BIN.

Dopo che il caricatore del sistema operativo Windows ha caricato tutti gli aggiornamenti del firmware in sospeso e creato le strutture di dati necessarie per descriverle, chiama quindi il servizio run-time UpdateCapsule, prima di chiamare ExitBootServices.

UpdateCapsule viene chiamato prima di ExitBootServices quando il firmware della piattaforma ha il controllo esclusivo di tutti i dispositivi, incluso il dispositivo di archiviazione. Un'implementazione del firmware della piattaforma di UpdateCapsule può salvare i payload di aggiornamento del firmware per l'archiviazione persistente per eseguire un aggiornamento o supportare un rollback di ripristino.

Definizione di tabella ESRT

Dispositivo Plug and play

Creazione di un pacchetto di driver di aggiornamento

I/O dispositivo dall'ambiente UEFI

Prevenzione e ripristino di crisi senza problemi

Stato dell'aggiornamento del firmware