Compartilhar via


Processando atualizações

Depois que todos os pacotes de atualização de firmware tiverem sido aplicados e o sistema ser reinicializado posteriormente, o carregador do sistema operacional Windows carregará todos os arquivos de conteúdo de firmware (neste exemplo, firmware.bin) na memória física. O carregador do sistema operacional 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 chamar o UPDATECapsule da UEFI. Ao definir o campo 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. Além disso, o carregador do sistema operacional Windows poderá definir CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE para tipos de firmware DEVICE_FIRMWARE, se o sinalizador de cápsula tiver sido especificado no INF para o pacote de driver. Sinalizadores de cápsula proprietários também podem ser especificados no INF e, quando especificado, também serão incluídos ao chamar UpdateCapsule da UEFI

Fazendo referência ao exemplo de ESRT na definição da tabela ESRT e ao exemplo INF do pacote de driver de atualização de recurso de firmware em Criação de um pacote de driver de atualização, os cabeçalhos de cápsula que o carregador do sistema operacional Windows cria para passar para UpdateCapsule seriam os seguintes.

Campo Valor Comentário
CapsuleGuid {SYSTEM_FIRMWARE} Do FirmwareClass da entrada de recurso ESRT correspondente.
HeaderSize ... Adicionado ao início de page-align firmware.bin .
Flags 0x50000 Persista entre e inicie a redefinição.
CapsuleImageSize ... Tamanho do Cabeçalho da Cápsula + O tamanho de 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 tiver sido criado para o segundo dispositivo na Tabela 2 e instalado no dispositivo de recurso de firmware correspondente, um segundo cabeçalho de cápsula será criado da seguinte maneira:

Campo Valor Comentário
CapsuleGuid {DEVICE_FIRMWARE} Do FirmwareClass da entrada de recurso ESRT correspondente.
HeaderSize ... Adicionado ao DISPOSITIVO de alinhamento de página. Início do BIN.
Flags 0x50000 Persista entre e inicie, redefina e preencha a tabela do sistema, OR'd com 0x8010 de CapsuleFlags da entrada de recurso ESRT correspondente.
CapsuleImageSize ... Tamanho do cabeçalho da cápsula + O tamanho de DEVICE. BIN.

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

UpdateCapsule é chamado antes de ExitBootServices quando o firmware de plataforma tem controle exclusivo de todos os dispositivos, incluindo o dispositivo de armazenamento. Uma implementação de firmware de plataforma do UpdateCapsule pode salvar cargas de atualização de firmware no armazenamento persistente para preparar uma atualização ou dar suporte a uma reversão de recuperação.

Definição de tabela ESRT

Dispositivo plug and play

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

E/S do dispositivo do ambiente UEFI

Prevenção e recuperação contínuas de crises

Status da atualização de firmware