Поделиться через


Состояние обновления встроенного ПО

На этом этапе ожидается, что будут применены все обновления встроенного ПО, а результаты всех обновлений будут отражены в ESRT при последующем вызове загрузчика ОС Windows. Возвращаясь к примеру ESRT в определении таблицы ESRT и примеру INF пакета обновления ресурса встроенного ПО в статье Создание пакета драйверов обновления. Если версия 2 файла firmware.bin была успешно применена встроенного ПО, это будет отражено в новой таблице ESRT. Обратите внимание, что единственное различие в таблице заключается в том, что поля Версия встроенного ПО и Последняя попытка версии для записи ресурса встроенного ПО системы изменились, чтобы отразить успешно примененную новую версию встроенного ПО.

Поле Значение Комментировать
Число ресурсов встроенного ПО 2 Эта таблица содержит две записи ресурсов встроенного ПО.
Максимальное количество ресурсов встроенного ПО 2 Это выделение таблицы содержит достаточно места для описания не более двух ресурсов.
Версия ресурса встроенного ПО 1 Версия формата записи ресурса встроенного ПО, используемого в этой таблице, — 1.
Массив входных данных ресурса встроенного ПО Запись ресурса встроенного ПО 0
Класс встроенного ПО (SYSTEM_FIRMWARE) Этот GUID идентифицирует встроенное ПО системы для обновления через PnP.
Тип встроенного ПО 1 Тип встроенного ПО системы — 1.
Версия встроенного ПО 2 Текущая версия встроенного ПО системы — 2.
Минимальная поддерживаемая версия встроенного ПО 2 Измените минимальную поддерживаемую версию встроенного ПО на 2, чтобы невозможно было выполнить откат встроенного ПО до версии, предшествующей версии 2. Это значение обычно изменяется, если обновление встроенного ПО содержит исправления безопасности.
Капсульные флаги 0 Встроенное ПО системы не определяет флаги обновления частных капсул.
Версия последней попытки 2 Последняя версия встроенного ПО системы, для которой была предпринята попытка обновления, — 2
Состояние последней попытки 0 Последняя попытка обновления встроенного ПО системы была успешной.
Запись ресурса встроенного ПО 1
Класс встроенного ПО (DEVICE_FIRMWARE) Этот GUID идентифицирует встроенное ПО устройства для обновления через PnP.
Тип встроенного ПО 2 Тип встроенного ПО устройства — 2.
Версия встроенного ПО 1 Текущая версия встроенного ПО устройства — 1.
Минимальная поддерживаемая версия встроенного ПО 1 Оставьте минимальную поддерживаемую версию встроенного ПО 1. При необходимости можно выполнить откат встроенного ПО до версии 1.
Капсульные флаги 0x8010 Встроенное ПО устройства определяет частные флаги обновления капсулы (0x8010).
Версия последней попытки 1 Последняя версия встроенного ПО устройства, для которой была предпринята попытка обновления, — 1.
Состояние последней попытки 0 Последняя попытка обновления встроенного ПО устройства была успешной.

Если не удается успешно применить встроенное ПО, то записи Версия встроенного ПО, Версия последней попытки и Состояние последней попытки в ESRT будут отражать неудачную попытку обновления. Например, если система пытается обновить версию 1 встроенного ПО до версии 2 и не удается применить ее, то значение Версии встроенного ПО = 1, Версия последней попытки = 2 и Состояние последней попытки != 0. (Т. е. для состояния последней попытки задан соответствующий ненуллевой код ошибки, указывающий причину сбоя. Список допустимых кодов ошибок для этой записи см. в разделе Определение таблицы ESRT.

Хотя стандартная политика обновления обеспечивает только увеличение версий встроенного ПО, эту политику можно отключить для тестирования с помощью параметра Политики, как описано в разделе Откат обновлений встроенного ПО ниже.

Сброс системы

Сброс системы позволяет конечным пользователям вернуть свои системы к заводским параметрам. Это достигается путем повторной установки образа Windows, предварительно загруженного в систему во время производственного процесса. Вся ОС, включая драйверы и приложения, будет переустановлена.

Из-за требований безопасности, которые предотвращают откат встроенного ПО через границы безопасности, системный сброс не может выполнить откат версий встроенного ПО в соответствии с исходным встроенным ПО, развернутым на фабрике. Это означает, что все версии встроенного ПО должны быть обратно совместимы со всеми версиями драйверов и операционных систем, поставляемыми на этой платформе. Если встроенное ПО несовместимо, это может привести к тому, что пользователь вернет свою систему производителю.

Откат обновлений встроенного ПО

В некоторых случаях может потребоваться откат обновления встроенного ПО, например во время тестирования обновления. Каждый ресурс встроенного ПО ESRT содержит запись в следующем разделе реестра: HKLM\SYSTEM\CurrentControlSet\Control\FirmwareResources.

Запись представляет собой ключ с именем, равным ИДЕНТИФИКАТОРу GUID, используемому для отчета о ресурсе в ESRT. Чтобы разрешить откат встроенного ПО, создайте значение REG_DWORD с именем Policy и задайте для параметра значение 1. Данный ресурс встроенного ПО можно откатить только до соответствующей версии встроенного ПО с наименьшей поддерживаемой версией, как указано в ESRT. Это необходимо для предотвращения откатов встроенного ПО за пределами момента, когда в встроенное ПО было внесено критическое исправление безопасности. Если версия встроенного ПО, к которому выполняется откат, соответствует этим условиям, загрузчик ОС обновится до более старой версии.

Определение таблицы ESRT

Устройство plug and play

Создание пакета драйвера обновления

Обработка обновлений

Ввод-вывод устройства из среды UEFI

Простое предотвращение и восстановление кризисов