Compartir a través de


Procesamiento de actualizaciones

Una vez aplicados los paquetes de actualización de firmware y el sistema se reinicia posteriormente, el cargador del sistema operativo Windows carga todos los archivos de carga de firmware (en este ejemplo, firmware.bin) en la memoria física. El cargador del sistema operativo Windows crea encabezados de cápsula mediante la información de la entrada ESRT correspondiente de cada actualización, que describe el GUID y las marcas que se usarán al llamar a UpdateCapsule de UEFI. Al establecer el campo de marcas de cada encabezado de cápsula, el cargador del sistema operativo Windows siempre establece CAPSULE_FLAGS_PERSIST_ACROSS_RESET y CAPSULE_FLAGS_INITIATE_RESET. El cargador del sistema operativo Windows también puede establecer CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE para los tipos de firmware DEVICE_FIRMWARE, si la marca de cápsula se especificó en el INF para el paquete de controladores. Las marcas de cápsulas propietarias también se pueden especificar en el INF y, cuando se especifique, se incluirán además al llamar a UEFI UpdateCapsule.

Si se hace referencia al ejemplo de ESRT en la definición de tabla de ESRT y el ejemplo inf del paquete de controladores de actualización de recursos de firmware en Creación de un paquete de controladores de actualización, los encabezados de cápsula que crea el cargador del sistema operativo Windows para pasar a UpdateCapsule serían los siguientes.

Campo Value Comentario
CapsuleGuid {SYSTEM_FIRMWARE} Desde la clase FirmwareClass de la entrada de recursos ESRT correspondiente.
HeaderSize ... Se rellena en el inicio de firmware.bin alineado a la página.
Marcas 0x50000 Persista entre e inicie, restablezca.
CapsuleImageSize ... Tamaño del encabezado de cápsula + el tamaño de firmware.bin.

Tenga en cuenta que en este ejemplo solo uno de los dos dispositivos definidos en la tabla ESRT ha instalado un nuevo paquete de controladores de actualización de recursos de firmware. Si se creó un paquete de controladores de actualización de recursos de firmware para el segundo dispositivo de la tabla 2 y, a continuación, se instaló en el dispositivo de recursos de firmware correspondiente, se creará un segundo encabezado de cápsula como se indica a continuación:

Campo Value Comentario
CapsuleGuid {DEVICE_FIRMWARE} Desde la clase FirmwareClass de la entrada de recursos ESRT correspondiente.
HeaderSize ... Dispositivo rellenado en la alineación de páginas. Inicio de BIN.
Marcas 0x50000 Persista entre e inicie, restablezca y rellene la tabla del sistema, O'd con 0x8010 de la cápsula de la entrada de recursos de ESRT correspondiente.
CapsuleImageSize ... Tamaño del encabezado de cápsula + Tamaño del dispositivo. BIN.

Una vez que el cargador del sistema operativo Windows ha cargado todas las actualizaciones de firmware pendientes y ha creado las estructuras de datos necesarias para describirlas, llama al servicio en tiempo de ejecución UpdateCapsule, antes de llamar a ExitBootServices.

Se llama a UpdateCapsule antes de ExitBootServices cuando el firmware de la plataforma tiene control exclusivo de todos los dispositivos, incluido el dispositivo de almacenamiento. Una implementación de firmware de plataforma de UpdateCapsule puede guardar cargas de actualización de firmware en el almacenamiento persistente para almacenar provisionalmente una actualización o para admitir una reversión de recuperación.

Definición de tabla ESRT

Dispositivo Plug and Play

Creación de un paquete de controladores de actualización

E/S del dispositivo desde el entorno UEFI

Prevención y recuperación de crisis sin problemas

Estado de actualización del firmware