Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указатель на таблицу ESRT определяется с помощью соответствующего GUID в EFI_CONFIGURATION_TABLE.
#define EFI_SYSTEM_RESOURCE_TABLE_GUID \
{ 0xb122a263, 0x3661, 0x4f68, 0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80 }
В следующей таблице описан формат таблицы ESRT и записей ресурсов встроенного ПО, содержащихся в таблице.
| Поле | Значение массива | Длина байтов | Смещение байтов | Описание |
|---|---|---|---|---|
| Число ресурсов встроенного ПО | 4 | 0 | Количество записей ресурсов встроенного ПО в ESRT. Не может быть равно нулю. | |
| Максимальное значение ресурса встроенного ПО | 4 | 4 | Максимальное количество записей массива ресурсов, которые можно добавить, не перераспределяя таблицу. Должно быть больше или равно количеству ресурсов встроенного ПО. | |
| Версия ресурса встроенного ПО | 8 | 8 | Версия записи ресурса встроенного ПО. Это значение должно иметь значение 1 | |
| Массив записей ресурсов встроенного ПО | Запись ресурса встроенного ПО 0 | |||
| Класс встроенного ПО | 16 | 16 | GUID, определяющий компонент встроенного ПО, который можно обновить с помощью капсулы обновления. Этот GUID будет передан в службу времени выполнения капсулы обновления UEFI в качестве параметра CapsuleGuid заголовка капсулы обновления во время обновления. | |
| Тип встроенного ПО | 4 | 32 | Одно из следующих значений, определяющих тип ресурса встроенного ПО: 0: неизвестно 1. Встроенное ПО системы 2. Встроенное ПО устройства 3. Драйвер UEFI |
|
| Версия встроенного ПО | 4 | 36 | Текущая версия встроенного ПО, где большее число указывает на более новую версию. Формат этого значения не определен, но должен включать главные и второстепенные номера версий. Рекомендуемый формат — это первое слово основное, а второй — незначительные номера версий. | |
| Самая низкая поддерживаемая версия встроенного ПО | 4 | 40 | Самая низкая версия ресурса встроенного ПО, в которую можно откатить ресурс встроенного ПО для заданной системы или устройства. Если исправление, связанное с безопасностью, доступно в этой версии встроенного ПО, то минимальная совместимая версия должна быть равна текущей версии встроенного ПО. | |
| Флаги капсулы | 4 | 44 | Флаги, которые будут переданы в службу UEFI обновления капсулы во время выполнения в битах 0 –15 поля флагов заголовка капсулы обновления (ОС отвечает за настройку битов 16 – 31 флагов, как определено в разделе 7.5.3 спецификации UEFI). | |
| Последняя версия попытки | 4 | 48 | Последняя версия встроенного ПО, для которой была предпринята попытка обновления. Это значение использует тот же формат, что и версия встроенного ПО. | |
| Состояние последней попытки | 4 | 52 | Одно из следующих значений, описывающее состояние последней попытки обновления встроенного ПО: 0. Успех 1. Неудачно 2. Недостаточно ресурсов 3. Неправильная версия 4. Недопустимый формат изображения 5. Ошибка проверки подлинности 6. Событие питания — AC не подключен 7. Событие питания — недостаточно батареи |
|
| ... | Запись ресурса встроенного ПО 1 |
Основная прошивка UEFI должна выделять и заполнять таблицу конфигурации ESRT, содержащую одну запись системного ресурса для себя (системной прошивки). Для наглядности в этом руководстве базовое прошивочное ПО также создаст одну дополнительную запись, представляющую устройство, поддерживающее обновление прошивочного ПО устройства с помощью механизма пакета обновления.
Всегда должна быть одна запись, описывающая системное встроенное ПО. Эта запись используется для назначения обновления встроенного ПО системы. Если реализация выполняет обновления встроенного ПО системы и устройства как единую монолитную операцию, запись встроенного ПО системы должна использоваться для назначения обновления. Во всех остальных случаях обновления встроенного ПО устройства направлены на запись ESRT, которая описывает встроенное ПО устройства.
Сначала необходимо создать идентификаторы GUID для представления этих двух ресурсов встроенного ПО, т. е. {SYSTEM_FIRMWARE} и {DEVICE_FIRMWARE}. В таблице 2 показан пример определения таблицы. В этом примере предполагается, что обе версии встроенного ПО в настоящее время имеют версию 1 (версия встроенного ПО == 1).
| Поле | Значение массива | Ценность | Комментарий |
|---|---|---|---|
| Число ресурсов встроенного ПО | 2 | Эта таблица содержит две записи ресурсов встроенного ПО. | |
| Максимальное значение ресурса встроенного ПО | 2 | Это выделение таблицы содержит достаточно места, чтобы описать не более двух ресурсов. | |
| Версия ресурса встроенного ПО | 1 | Версия формата записи ресурса встроенного ПО в этой таблице равна 1. | |
| Массив записей ресурсов встроенного ПО | Запись ресурса встроенного ПО 0 | ||
| Класс встроенного ПО | (SYSTEM_FIRMWARE) | Этот GUID определяет системное встроенное ПО для обновления с помощью PnP. | |
| Тип встроенного ПО | 1 | Системный тип встроенного ПО равен 1. | |
| Версия встроенного ПО | 1 | Текущая версия встроенного ПО системы — 1. | |
| Самая низкая поддерживаемая версия встроенного ПО | 1 | Самая низкая поддерживаемая версия встроенного ПО — 1, поэтому откат встроенного ПО на версию ранее версии 1 невозможен. | |
| Флаги капсулы | 0 | Встроенное ПО системы не определяет флаги обновления частных капсул. | |
| Версия последней попытки | 1 | Последняя версия встроенного ПО системы, для которой была предпринята попытка обновления, была версия 1. | |
| Состояние последней попытки | 0 | Последняя попытка обновления встроенного ПО системы была успешной. | |
| Запись ресурса встроенного ПО 1 | |||
| Класс встроенного ПО | (ПРОШИВКА УСТРОЙСТВА) | Этот GUID определяет встроенное ПО устройства для обновления с помощью PnP. | |
| Тип встроенного ПО | 2 | Тип встроенного ПО устройства — 2. | |
| Версия встроенного ПО | 1 | Текущая версия встроенного ПО устройства — 1. | |
| Самая низкая поддерживаемая версия встроенного ПО | 1 | Самая низкая поддерживаемая версия встроенного ПО — 1, поэтому невозможно откатить встроенное ПО к версии, более ранней, чем 1. | |
| Флаги капсулы | 0x8010 | Встроенное ПО устройства определяет флаги обновления частных капсул (0x8010). | |
| Последняя версия попытки | 1 | Последняя версия встроенного ПО устройства, для которой была предпринята попытка обновления, — версия 1 | |
| Состояние последней попытки | 0 | Последняя попытка обновления встроенного ПО устройства прошла успешно. |
Приведенный выше пример ESRT используется в других частях этой документации для выполнения процесса обновления микропрограммы и описания поддержки Windows для данного процесса обновления, а также реализации поддержки микропрограммы.
Связанные темы
устройство типа "Подключи и используй"
Создание пакета драйвера обновления