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


Доступ к переменным встроенного ПО 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.

ограниченные возможности

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

Получение доступа к данным SMBIOS из универсального приложения Windows