Compartir a través de


Definición de tabla ESRT

El puntero a la tabla ESRT se identifica a través de su GUID correspondiente en el EFI_CONFIGURATION_TABLE.

#define EFI_SYSTEM_RESOURCE_TABLE_GUID   \
{ 0xb122a263, 0x3661, 0x4f68,  0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80  }

En la tabla siguiente se describe el formato de la tabla ESRT y las entradas de recursos de firmware contenidas en la tabla.

Campo Valor de matriz Longitud de bytes Desplazamiento de bytes Descripción
Número de recursos de firmware 4 0 Número de entradas de recursos de firmware en ESRT. No debe ser cero.
Número máximo de recursos de firmware 4 4 Número máximo de entradas de matriz de recursos que se pueden agregar sin reasignar la tabla. Debe ser mayor o igual que el número de recursos de firmware.
Versión del recurso de firmware 8 8 Versión de entrada del recurso de firmware. Este valor debe establecerse en 1
Matriz de entrada de recursos de firmware Entrada de recurso de firmware 0
Clase firmware 16 16 GUID que identifica un componente de firmware que se puede actualizar a través de la cápsula de actualización. Este GUID se pasará al servicio de tiempo de ejecución de cápsula de actualización ueFI como parámetro CapsuleGuid del encabezado de cápsula de actualización durante la actualización.
Tipo de firmware 4 32 Uno de los siguientes valores que identifica el tipo de recurso de firmware:

0: desconocido

1: Firmware del sistema

2: Firmware del dispositivo

3: Controlador UEFI
Versión de firmware 4 36 La versión actual del firmware, donde un número mayor representa una versión más reciente. El formato de este valor no está definido, pero debe incorporar números principales y secundarios de la versión. El formato recomendado es la primera palabra es principal y la segunda palabra es números de versión secundaria.
Versión de firmware admitida más baja 4 40 La versión de recurso de firmware más baja a la que se puede revertir un recurso de firmware para el sistema o dispositivo especificado. Si hay disponible una corrección relacionada con la seguridad en esta versión de firmware, la versión menos compatible debe ser igual a la versión de firmware actual.
Marcas de cápsula 4 44 Marcas que se pasarán al servicio de tiempo de ejecución de la cápsula de actualización ueFI en bits 0 – 15 del campo Marcas del encabezado de cápsula de actualización (el sistema operativo es responsable de configurar bits 16 – 31 de marcas según se define en la sección 7.5.3 de la especificación UEFI).
Última versión de intento 4 48 Última versión de firmware para la que se intentó una actualización. Este valor usa el mismo formato que la versión de firmware.
Estado del último intento 4 52 Uno de los siguientes valores que describe el estado del último intento de actualización de firmware:

0: correcto

1: Incorrecto

2: Recursos insuficientes

3: Versión incorrecta

4: Formato de imagen no válido

5: Error de autenticación

6: Evento de alimentación: CA no conectada

7: Evento de energía - Batería insuficiente
... Entrada de recurso de firmware 1

El firmware de UEFI principal debe asignar y rellenar una tabla de configuración de ESRT que contenga una entrada de recursos del sistema para sí misma (firmware del sistema). Con fines ilustrativos, en esta guía, el firmware principal también creará una entrada adicional que representa un dispositivo que admite la actualización de firmware del dispositivo mediante el mecanismo del paquete de actualización de firmware.

Siempre debe haber exactamente una entrada que describa el firmware del sistema. Esta entrada se usa para tener como destino una actualización de firmware del sistema. Si una implementación realiza actualizaciones de firmware del sistema y del dispositivo como una sola operación monolítica, la entrada de firmware del sistema debe usarse para tener como destino la actualización. En todos los demás casos, las actualizaciones de firmware del dispositivo están dirigidas por una entrada de ESRT que describe el firmware del dispositivo.

A continuación, el primer paso consiste en generar GUID para representar estos dos recursos de firmware, es decir, {SYSTEM_FIRMWARE} y {DEVICE_FIRMWARE}. La tabla 2 muestra un ejemplo de una definición de tabla. En este ejemplo se supone que ambas versiones de firmware son actualmente la 1 (versión de firmware == 1).

Campo Valor de matriz Value Comentario
Número de recursos de firmware 2 Esta tabla contiene dos entradas de recursos de firmware.
Número máximo de recursos de firmware 2 Esta asignación de tabla contiene suficiente espacio para describir un máximo de dos recursos.
Versión del recurso de firmware 1 La versión del formato de entrada de recursos de firmware que usa esta tabla es 1.
Matriz de entrada de recursos de firmware Entrada de recurso de firmware 0
Clase firmware (SYSTEM_FIRMWARE) Este GUID identifica el firmware del sistema para la actualización a través de PnP.
Tipo de firmware 1 El tipo de firmware del sistema es 1.
Versión de firmware 1 La versión actual del firmware del sistema es 1.
Versión de firmware compatible más baja 1 La versión de firmware compatible más baja es 1, por lo que el firmware no se puede revertir a una versión anterior a la versión 1.
Marcas de cápsula 0 El firmware del sistema no define ninguna marca de actualización de cápsula privada.
Última versión de intento 1 La última versión del firmware del sistema para la que se intentó actualizar era la versión 1.
Estado del último intento 0 El último intento de actualización del firmware del sistema se realizó correctamente.
Entrada de recurso de firmware 1
Clase firmware (DEVICE_FIRMWARE) Este GUID identifica el firmware del dispositivo para la actualización a través de PnP.
Tipo de firmware 2 El tipo de firmware del dispositivo es 2.
Versión de firmware 1 La versión actual del firmware del dispositivo es 1.
Versión de firmware compatible más baja 1 La versión de firmware compatible más baja es 1, por lo que el firmware no se puede revertir a una versión anterior a la versión 1.
Marcas de cápsula 0x8010 El firmware del dispositivo define marcas de actualización de cápsulas privadas (0x8010).
Última versión de intento 1 La última versión de firmware del dispositivo para la que se intentó actualizar es la versión 1.
Estado del último intento 0 El último intento de actualización del firmware del dispositivo se realizó correctamente.

El ejemplo anterior de ESRT se usa en otra parte de esta documentación para recorrer el proceso de actualización de firmware y describir la compatibilidad de Windows con el proceso de actualización, así como una implementación de firmware compatible.

Dispositivo plug and play

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

Procesamiento de actualizaciones

E/S del dispositivo desde el entorno UEFI

Prevención y recuperación de crisis sin problemas

Estado de actualización del firmware