Доступ к переменным встроенного ПО UEFI из универсального приложения Windows
[Некоторые сведения связаны с предварительно выпущенным продуктом, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.]
Как получить доступ к переменным прошивки унифицированного расширяемого интерфейса (UEFI) из универсального приложения для Windows.
Начиная с Windows 10 версии 1803 универсальные приложения Windows могут использовать GetFirmwareEnvironmentVariable и SetFirmwareEnvironmentVariable (и их варианты ex) для доступа к переменным встроенного ПО UEFI, выполнив следующие действия:
Объявите пользовательскую возможность Microsoft.firmwareRead_cw5n1h2txyewy в манифесте для чтения переменной встроенного ПО или возможность Microsoft.firmwareWrite_cw5n1h2txyewy для записи переменной встроенного ПО.
Кроме того, в манифесте приложения объявите возможность protectedApp с ограниченным доступом.
Например, следующие дополнения манифеста приложения позволяют универсальному приложению Windows считывать переменные встроенного ПО:
<Package ... xmlns:uap4=http://schemas.microsoft.com/appx/manifest/uap/windows10/4 xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="uap mp uap4 rescap"> ... <Capabilities> <rescap:Capability Name="protectedApp"/> <uap4:CustomCapability Name="microsoft.firmwareRead_cw5n1h2txyewy" /> </Capabilities> </Package>
Установите параметр компоновщика /INTEGRITYCHECKдля всех конфигураций проекта, прежде чем отправлять приложение в Microsoft Store. Это гарантирует, что приложение будет запущено в качестве защищенного приложения. Для получения дополнительной информации см. /INTEGRITYCHECK (Требовать проверку подписи).
Получите файл дескриптора настраиваемых возможностей (SCCD) , подписанный Microsoft. Сведения о том, как получить подписанный SCCD-файл от Корпорации Майкрософт, как упаковать его с приложением поддержки оборудования (HSA) и как включить режим разработчика, см. в создании пользовательской возможности для создания пользовательской возможности для связывания драйвера с драйверами. Ниже приведен пример файла SSCD из примера CustomCapability:
<?xml version="1.0" encoding="utf-8"?> <CustomCapabilityDescriptor xmlns="http://schemas.microsoft.com/appx/2016/sccd" xmlns:s="http://schemas.microsoft.com/appx/2016/sccd"> <CustomCapabilities> <CustomCapability Name="microsoft.hsaTestCustomCapability_q536wpkpf5cy2"></CustomCapability> <CustomCapability Name="microsoft.firmwareRead_cw5n1h2txyewy"></CustomCapability> </CustomCapabilities> <AuthorizedEntities> <AuthorizedEntity AppPackageFamilyName="Microsoft.SDKSamples.CustomCapability.CPP_8wekyb3d8bbwe" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity> <AuthorizedEntity AppPackageFamilyName="Microsoft.SDKSamples.CustomCapability.CPP_8wekyb3d8bbwe" CertificateSignatureHash="279cd652c4e252bfbe5217ac722205d7729ba409148cfa9e6d9e5b1cb94eaff1"></AuthorizedEntity> </AuthorizedEntities> <Catalog>xxxx</Catalog> </CustomCapabilityDescriptor>
Отправьте приложение в Microsoft Store, чтобы получить его подпись. В целях разработки можно пропустить подписывание, включив тестовую подпись в базе данных конфигурации загрузки (BCD). Дополнительные сведения см. параметр конфигурации загрузки TESTSIGNING.
Связанные разделы