Partilhar via


Processamento de atualizações

Depois que todos os pacotes de atualização de firmware foram aplicados e o sistema subsequentemente reinicializado, o carregador do sistema operacional Windows carrega todos os arquivos de carga do firmware (neste exemplo, firmware.bin) na memória física. O carregador do sistema operativo Windows cria cabeçalhos de cápsula usando as informações da entrada ESRT correspondente de cada atualização, que descreve o GUID e os sinalizadores a serem usados ao usar o UEFI UpdateCapsule. Ao definir o campo de sinalizadores de cada cabeçalho de cápsula, o carregador do sistema operacional Windows sempre define CAPSULE_FLAGS_PERSIST_ACROSS_RESET e CAPSULE_FLAGS_INITIATE_RESET. O carregador do sistema operacional Windows pode adicionalmente definir CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE para tipos de firmware DEVICE_FIRMWARE, se o sinalizador da cápsula foi especificado no INF para o pacote de driver. Sinalizadores de cápsula proprietária também podem ser especificados no INF e, quando especificado, serão adicionalmente incluídos ao chamar UEFI UpdateCapsule

Referindo-se ao exemplo ESRT na definição da tabela ESRT e ao exemplo INF do pacote de driver de atualização de recursos de firmware em Criação de um pacote de driver de atualização, os cabeçalhos de cápsula criados pelo carregador do sistema operativo Windows para serem passados para o UpdateCapsule seriam os seguintes.

Campo Valor Comentário
Cápsula Guid {SYSTEM_FIRMWARE} Da classe de Firmware da entrada de recurso ESRT correspondente.
TamanhoDoCabeçalho ... Alinhado ao início de página o início de firmware.bin.
Bandeiras 0x50000 Persista através e inicie o reset.
CapsuleImageSize ... Tamanho do cabeçalho da cápsula + O tamanho do firmware.bin.

Observe que, neste exemplo, apenas um dos dois dispositivos definidos na tabela ESRT instalou um novo pacote de driver de atualização de recursos de firmware. Se um pacote de driver de atualização de recurso de firmware fosse criado para o segundo dispositivo na Tabela 2 e, em seguida, instalado no dispositivo de recurso de firmware correspondente, um segundo cabeçalho de cápsula seria criado da seguinte maneira:

Campo Valor Comentário
Cápsula Guid {FIRMWARE_DO_DISPOSITIVO} Da classe de firmware da entrada de recurso ESRT correspondente.
Tamanho do Cabeçalho ... Preenchido para alinhar por página o início de DEVICE.BIN.
Bandeiras 0x50000 Persista, inicie, redefina e preencha a tabela do sistema, com valor OR de 0x8010 dos CapsuleFlags da entrada de recurso ESRT correspondente.
CapsuleImageSize ... Tamanho do Cabeçalho da Cápsula + O tamanho do DEVICE.BIN.

Depois que o carregador do sistema operacional Windows carregou todas as atualizações de firmware pendentes e criou as estruturas de dados necessárias para descrevê-las, ele chama o serviço de tempo de execução UpdateCapsule, antes de chamar ExitBootServices.

UpdateCapsule é chamado antes de ExitBootServices quando o firmware da plataforma tem controle exclusivo de todos os dispositivos, incluindo o dispositivo de armazenamento. Uma implementação do firmware de plataforma do UpdateCapsule pode salvar cargas úteis de atualização de firmware no armazenamento persistente para preparar uma atualização ou suportar uma restauração.

Definição da tabela ESRT

Dispositivo Plug-and-Play

Criação de um pacote de driver de atualização

E/S de dispositivo a partir do ambiente UEFI

Prevenção e recuperação de crises sem descontinuidades

Estado da atualização de firmware