Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если обновление встроенного ПО неудачно, последствия могут быть катастрофическими. В лучшем случае обновление завершается сбоем, но система устойчива и восстанавливается без того, чтобы конечный пользователь не знал. В худшем случае обновление встроенного ПО может привести к неисправной системе, требуя, чтобы конечный пользователь вернул свою систему в магазин или производителю для ремонта. Последний случай заключается в том, что мы называем кризисом.
Кризис может привести к сбою обновления встроенного ПО или из-за встроенного ПО, несовместимого с Windows или другими аспектами системы. В этом разделе рассматриваются функции, предназначенные для предотвращения и восстановления кризисов, вызванных сбоем обновлений встроенного ПО. Мы ожидаем, что автор встроенного ПО обеспечивает такое тестовое покрытие обновлений, которое предотвращает большинство кризисов, вызванных несовместимым программным обеспечением.
Чтобы обеспечить отличный опыт для конечных пользователей, для механизма обновления пакета драйверов встроенного ПО необходимо выполнить следующие требования к предотвращению кризисов и восстановлению. Эти требования не препятствуют дополнительным решениям по предотвращению кризисов или восстановлению.
Критерии предварительной установки
Когда системное встроенное ПО выполняет фактическое обновление, необходимо выполнить ряд проверок предварительной установки. Встроенное ПО системы должно выполнить эту проверку, чтобы обеспечить достаточно мощности для завершения обновления. Кроме того, рекомендуется выполнить проверки для каждого из обновлений перед применением обновления при наличии нескольких обновлений встроенного ПО. Список элементов для проверки и валидации приведен в следующей таблице. Все проверки должны выполняться, если это применимо. Для выполнения тестов нет определенного порядка.
| Тип проверки | Описание |
|---|---|
| Мощность | Система должна иметь как минимум 25% заряда батареи. Не требуется подключенная мощность (питание через USB-кабель и/или питание AC). В тестовой или лабораторной среде приемлемо отсутствие батареи, если тем не менее разрешаются обновления встроенного ПО при условии, что подается питание. Следует различать между полностью разряженным или не заряжающимся аккумулятором и отсутствием батареи. |
| Безопасность | Убедитесь в верности подписи капсулы обновления. Убедитесь, что все файлы EFI на основе PE в полезных данных правильно подписаны подходящим сертификатом EFI. |
| Целостность | Выполните проверку целостности загрузочного пакета обновления встроенного ПО. |
| Версия | Убедитесь, что применяемое встроенное ПО не понижает текущее установленное встроенное ПО ниже значения LowestSupportedFirmwareVersion. |
| Хранение | Следующие проверки выполняются соответствующим образом в зависимости от оборудования системы. Существует достаточно места для резервного копирования текущего встроенного ПО, который будет заменен На устройстве достаточно места для размещения нового встроенного ПО. |
Любой сбой должен привести к соответствующему коду ошибки состояния последней попытки. Дополнительные сведения см. в разделе "Код ошибки последней попытки" в определении таблицы ESRT и состоянии обновления встроенного ПО.
Если применяются несколько обновлений и некоторые проходят проверки предварительной установки, а другие — нет, встроенное ПО платформы может продолжить обновление встроенного ПО для ресурсов, которые прошли проверки предварительной установки. Однако любой ресурс, который не прошел проверку предварительной установки, не должен быть обновлен.
Критерии после установки
После установки прошивки (устройства или системы) необходимо проверить, что новый образ прошивки является тем, что было задумано. Это позволяет свести к минимуму риски повреждения, внесенные во время фактического процесса обновления (например, залипание битов во флеш ПЗУ, шум на шине во время обновления и т. д.).
Процесс обновления должен проверить, проходит ли обновленная прошивка проверку целостности. Если произойдет сбой, необходимо восстановиться, откатившись до последней известной исправной версии встроенного ПО.
Любой сбой должен привести к соответствующему коду ошибки состояния последней попытки. Дополнительные сведения см. в разделе "Код ошибки последней попытки" в определении таблицы ESRT и состоянии обновления встроенного ПО.
Восстановление после сбоев установки и загрузки
Чтобы предотвратить достижение незагрузочного состояния системы, механизм обновления встроенного ПО должен соответствовать следующим требованиям в случаях, когда обновления встроенного ПО не удается установить, или в случаях, когда система не сможет успешно загрузиться.
В следующих разделах термин "закреплено" используется для описания встроенного ПО. После того как встроенное ПО было "зафиксировано", оно обрабатывается как полностью установленное и не будет автоматически откатываться из-за сбоя загрузки и т. д. "Не зафиксированное" встроенное ПО описывает частично обновленное ПО и потенциально может быть откатировано до предыдущей версии в случаях, когда обновление встроенного ПО не может быть завершено или сбой обнаружен в обновлении встроенного ПО (например, недопустимая проверка CRC в обновлении). Отслеживание фиксации встроенного ПО должно происходить внутренне прошивкой и не фиксируется в составе ESRT.
Обновление встроенного ПО неудачно
Если не удаётся установить ПО отдельного устройства или системы, или оно установлено неправильно (например, из-за какого-либо повреждения или потери питания при установке обновления), обновление может быть выполнено до трёх (3) попыток, включая первую попытку. Если дополнительные попытки будут выполняться встроенным ПО, система не должна загружаться в Windows между любыми из попыток. Если все попытки завершаются сбоем, обновляющее встроенное ПО должно отменить процесс. Если обновление было частично применено, встроенное ПО должно выполнить откат до предыдущей версии. Встроенное ПО должно откатиться до предыдущей версии без какого-либо взаимодействия с пользователем. Сбой обновления не влияет на другие ожидающие обновления; Необходимо попытаться выполнить ожидающие обновления встроенного ПО.
После обработки всех обновлений UEFI возобновляет загрузку Windows. Встроенное ПО UEFI должно убедиться в том, что все непримененные обновления встроенного ПО успешно установлены, чтобы устранить проблемы из-за потери питания (UEFI никогда не должен пытаться загрузить Windows с частично записанным встроенным ПО).
Возможные причины сбоя установки включают в себя, но не ограничиваются следующими проблемами:
| Причина сбоя установки | Код ошибки |
|---|---|
| Недостаточно ресурсов | СТАТУС_НЕДОСТАТОЧНО_РЕСУРСОВ |
| Потери мощности | СОСТОЯНИЕ: НЕДОСТАТОЧНАЯ МОЩНОСТЬ |
| Аппаратный сбой | НЕВЕРНОЕ СОСТОЯНИЕ ЭНЕРГОПОТРЕБЛЕНИЯ |
Обновление встроенного ПО успешно выполнено, но Windows не удается загрузить
UEFI прошивка не отвечает за откат обновленной прошивки после её применения. Существующая логика переключения на резерв в Windows перенаправляет конечного пользователя в среду восстановления Windows (WinRE) после двух неудачных попыток загрузки. WinRE может или не успешно загрузится. Конечный пользователь должен выполнить ручной шаг восстановления для восстановления системы или вернуть устройство в розничный магазин или производитель.
Возможные причины этой категории сбоев включают в себя, но не ограничиваются следующим:
Встроенное ПО несовместимо с драйверами ОС.
Встроенное ПО несовместимо с компонентами ОС.
Если поставщик оборудования решит реализовать дополнительную логику, чтобы определить, успешно ли загружена Windows, это приемлемо. Как упоминалось ранее, ожидается, что покрытие тестов обновления прошивки разработчиком прошивки предотвращает кризисы, вызванные несовместимостью прошивки.
Связанные статьи
устройство типа "Подключи и используй"