Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Il puntatore alla tabella ESRT viene identificato tramite il GUID corrispondente nel EFI_CONFIGURATION_TABLE.
#define EFI_SYSTEM_RESOURCE_TABLE_GUID \
{ 0xb122a263, 0x3661, 0x4f68, 0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80 }
La tabella seguente descrive il formato della tabella ESRT e delle voci delle risorse firmware contenute nella tabella.
| Campo | Valore dell'array | Lunghezza byte | Offset di byte | Descrizione |
|---|---|---|---|---|
| Numero di risorse firmware | 4 | 0 | Numero di voci di risorse del firmware in ESRT. Non deve essere zero. | |
| Numero massimo di risorse firmware | 4 | 4 | Numero massimo di voci della matrice di risorse che è possibile aggiungere senza riallocare la tabella. Deve essere maggiore o uguale al numero di risorse firmware. | |
| Versione della risorsa firmware | 8 | 8 | Versione della voce risorsa firmware. Questo valore deve essere impostato su 1 | |
| Matrice di elementi di risorsa firmware | Voce di risorsa firmware 0 | |||
| Classe Firmware | 16 | 16 | GUID che identifica un componente firmware che può essere aggiornato tramite la capsula di aggiornamento. Questo GUID verrà passato come parametro CapsuleGuid dell'intestazione della capsula di aggiornamento al servizio di runtime della capsula di aggiornamento UEFI durante il processo di aggiornamento. | |
| Tipo di firmware | 4 | 32 | Uno dei valori seguenti che identifica il tipo di risorsa firmware: 0: Sconosciuto 1: Firmware di sistema 2: Firmware del dispositivo 3: driver UEFI |
|
| Versione del firmware | 4 | 36 | La versione corrente del firmware, in cui un numero maggiore rappresenta una versione più recente. Il formato di questo valore non è definito, ma deve incorporare numeri principali e secondari della versione. Il formato consigliato prevede che la prima sia la versione principale e la seconda sia la versione secondaria. | |
| Versione del firmware più bassa supportata | 4 | 40 | Versione della risorsa firmware più bassa a cui è possibile eseguire il rollback di una risorsa firmware per il sistema o il dispositivo specificato. Se in questa versione del firmware è disponibile una correzione correlata alla sicurezza, la versione meno compatibile deve essere uguale alla versione corrente del firmware. | |
| Bandiere capsule | 4 | 44 | Flag che verranno passati al servizio di runtime della capsula di aggiornamento UEFI in bit 0 - 15 del campo Flag dell'intestazione della capsula di aggiornamento (il sistema operativo è responsabile della configurazione dei bit 16 - 31 dei flag come definito dalla sezione 7.5.3 della specifica UEFI). | |
| Ultima versione di tentativo | 4 | 48 | Ultima versione del firmware per cui è stato tentato un aggiornamento. Questo valore usa lo stesso formato di Firmware Version. | |
| Lo stato dell'ultimo tentativo | 4 | 52 | Uno dei valori seguenti che descrive lo stato dell'ultimo tentativo di aggiornamento del firmware: 0: Esito positivo 1: Non riuscito 2: Risorse insufficienti 3: Versione non corretta 4: Formato immagine non valido 5: Errore di autenticazione 6: Evento di alimentazione - AC non connesso 7: Evento di alimentazione - Batteria insufficiente |
|
| ... | Voce risorsa firmware 1 |
Il firmware UEFI principale deve allocare e popolare una tabella di configurazione ESRT contenente una voce di risorsa di sistema per se stessa (firmware di sistema). A scopo illustrativo, in questa guida core firmware creerà anche una voce aggiuntiva che rappresenta un dispositivo che supporta l'aggiornamento del firmware del dispositivo usando il meccanismo del pacchetto di aggiornamento del firmware.
Deve essere sempre presente esattamente una sola voce che descrive il firmware di sistema. Questa voce viene usata per impostare come destinazione un aggiornamento del firmware di sistema. Se un'implementazione esegue aggiornamenti del firmware di sistema e del firmware del dispositivo come singola operazione monolitica, deve essere utilizzata la voce del firmware di sistema per indirizzare l'aggiornamento. In tutti gli altri casi, gli aggiornamenti del firmware del dispositivo sono indirizzati da una voce ESRT che descrive il firmware del dispositivo.
Il primo passaggio consiste quindi nel generare GUID per rappresentare queste due risorse del firmware, ad esempio {SYSTEM_FIRMWARE} e {DEVICE_FIRMWARE}. La tabella 2 mostra un esempio di definizione di tabella. Questo esempio presuppone che entrambe le versioni del firmware siano attualmente versione 1 (Versione firmware == 1).
| Campo | Valore dell'array | Valore | Commento |
|---|---|---|---|
| Numero di risorse firmware | 2 | Questa tabella contiene due voci di risorsa firmware. | |
| Numero massimo di risorse firmware | 2 | Questa allocazione di tabella contiene spazio sufficiente per descrivere un massimo di due risorse. | |
| Versione della risorsa firmware | 1 | La versione del formato della voce di risorsa firmware utilizzata da questa tabella è 1. | |
| Matrice di elementi di risorsa firmware | Voce risorsa del firmware 0 | ||
| Classe Firmware | (SYSTEM_FIRMWARE) | Questo GUID identifica il firmware di sistema per l'aggiornamento tramite PnP. | |
| Tipo di firmware | 1 | Il tipo di firmware di sistema è 1. | |
| Versione del firmware | 1 | La versione corrente del firmware di sistema è 1. | |
| Versione del firmware più bassa supportata | 1 | La versione più bassa supportata del firmware è 1, quindi non è possibile eseguire il rollback del firmware a una versione precedente alla versione 1. | |
| Bandiere capsule | 0 | Il firmware di sistema non definisce alcun flag di aggiornamento della capsula privata. | |
| Ultima versione di tentativo | 1 | L'ultima versione del firmware di sistema per cui è stato tentato un aggiornamento è stata la versione 1. | |
| Lo stato dell'ultimo tentativo | 0 | L'ultimo tentativo di aggiornamento del firmware di sistema è riuscito. | |
| Voce della risorsa firmware 1 | |||
| Classe Firmware | (Firmware del Dispositivo) | Questo GUID identifica il firmware del dispositivo per l'aggiornamento tramite PnP. | |
| Tipo di firmware | 2 | Il tipo di firmware del dispositivo è 2. | |
| Versione del firmware | 1 | La versione corrente del firmware del dispositivo è 1. | |
| Versione del firmware più bassa supportata | 1 | La versione più bassa supportata del firmware è 1, quindi non è possibile eseguire il rollback del firmware a una versione precedente alla versione 1. | |
| Bandiere capsule | 0x8010 | Il firmware del dispositivo definisce i flag di aggiornamento della capsula privata (0x8010). | |
| Ultima versione di tentativo | 1 | L'ultima versione del firmware del dispositivo per cui è stato tentato un aggiornamento è la versione 1 | |
| Lo stato dell'ultimo tentativo | 0 | L'ultimo tentativo di aggiornamento del firmware del dispositivo è riuscito. |
L'esempio ESRT precedente viene usato altrove in questa documentazione per esaminare il processo di aggiornamento del firmware e descrivere il supporto di Windows per il processo di aggiornamento, nonché un'implementazione del firmware di supporto.
Argomenti correlati
Creazione di un pacchetto driver di aggiornamento
l'elaborazione degli aggiornamenti
I/O del dispositivo dall'ambiente UEFI