Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
После применения пакетов обновления встроенного ПО и последующей перезагрузки системы загрузчик ОС Windows загружает все полезные файлы встроенного ПО (в этом примере firmware.bin) в физическую память. Загрузчик ОС Windows создает заголовки капсул с помощью сведений из соответствующей записи ESRT каждого обновления, которая описывает GUID и флаги, используемые при вызове UEFI UpdateCapsule. При установке поля флагов каждого заголовка капсулы загрузчик ОС Windows всегда задает CAPSULE_FLAGS_PERSIST_ACROSS_RESET и CAPSULE_FLAGS_INITIATE_RESET. Загрузчик ОС Windows может дополнительно задать CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE для типов встроенного ПО DEVICE_FIRMWARE, если флаг капсулы был указан в INF-файле пакета драйвера. В INF-файле могут быть указаны собственные флаги капсул, и при их указании они также будут включены при вызове UEFI UpdateCapsule.
Возвращаясь к примеру ESRT в определении таблицы ESRT и примеру INF пакета обновления драйвера, в создании пакета обновления драйвера, заголовки капсул, созданные загрузчиком ОС Windows, будут переданы в UpdateCapsule следующим образом.
| Поле | Ценность | Комментарий |
|---|---|---|
| КапсулаГуид | {SYSTEM_FIRMWARE} | Из класса «FirmwareClass» соответствующей записи ресурса ESRT. |
| Размер заголовка | ... | Выравнивание firmware.bin по границе страницы начато. |
| Флаги | 0x50000 | Сохранять по всему и инициировать перезагрузку. |
| CapsuleImageSize | ... | Размер заголовка капсулы + размер firmware.bin. |
Обратите внимание, что в этом примере только один из двух устройств, определенных в таблице ESRT, установил новый пакет драйвера обновления ресурсов встроенного ПО. Если пакет драйвера обновления ресурсов встроенного ПО был создан для второго устройства в таблице 2, а затем установлен на соответствующем устройстве ресурса встроенного ПО, будет создан второй заголовок капсулы следующим образом:
| Поле | Ценность | Комментарий |
|---|---|---|
| КапсулаГид | {ПРОШИВКА УСТРОЙСТВА} | Из соответствующего класса встроенного ПО ресурса ESRT. |
| Размер заголовка | ... | Заполнено для выравнивания начала DEVICE.BIN по странице. |
| Флаги | 0x50000 | Сохраняйте в пределах, а также инициируйте, сбрасывайте и заполняйте системную таблицу OR с помощью 0x8010 из соответствующей записи ресурса ESRT в CapsuleFlags. |
| РазмерИзображенияКапсулы | ... | Размер заголовка капсулы + размер DEVICE.BIN. |
После того как загрузчик ОС Windows загрузил все ожидающие обновления встроенного ПО и создал необходимые структуры данных для их описания, он затем вызывает службу UpdateCapsule в режиме выполнения перед вызовом ExitBootServices.
UpdateCapsule вызывается до ExitBootServices, когда встроенное ПО платформы имеет монопольный контроль над всеми устройствами, включая устройство хранения. Реализация встроенного ПО платформы UpdateCapsule может сохранять полезные данные обновления встроенного ПО в постоянное хранилище для подготовки обновления или поддержки восстановления откатом.
Связанные темы
Создание пакета драйвера обновления