Compartilhar via


Acessar variáveis de firmware uefi de um aplicativo Universal do Windows

[Algumas informações relacionam-se ao produto de pré-lançamento, o qual poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não fornece nenhuma garantia, expressa ou implícita, com relação às informações fornecidas aqui.]

Como acessar variáveis de firmware UEFI (Unified Extensible Firmware Interface) de um aplicativo Universal do Windows.

A partir do Windows 10, versão 1803, os aplicativos Universais do Windows podem usar GetFirmwareEnvironmentVariable e SetFirmwareEnvironmentVariable (e suas variantes 'ex') para acessar variáveis de firmware UEFI fazendo o seguinte:

  • Declare o Microsoft.firmwareRead_cw5n1h2txyewy funcionalidade personalizada no manifesto para ler uma variável de firmware e/ou a funcionalidade Microsoft.firmwareWrite_cw5n1h2txyewy para gravar uma variável de firmware.

  • Declare também a funcionalidade restrita protectedApp no manifesto do aplicativo.

  • Por exemplo, as seguintes adições de manifesto do aplicativo permitem que o aplicativo Universal do Windows leia variáveis de firmware:

    <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>
    
  • Defina a opção do vinculador /INTEGRITYCHECK, para todas as configurações de projeto, antes de enviar o aplicativo para a Microsoft Store. Isso garante que o aplicativo seja iniciado como um aplicativo protegido. Consulte /INTEGRITYCHECK (Exigir verificação de assinatura) para obter detalhes.

  • Obtenha um arquivo SCCD ( Descritor de Funcionalidade Personalizada) assinado da Microsoft. Consulte Criando um recurso personalizado para emparelhar um driver com um HSA (Aplicativo de Suporte de Hardware) e Usando uma funcionalidade personalizada para emparelhar um HSA (Aplicativo de Suporte de Hardware) com um driver para obter informações sobre como obter um arquivo SCCD assinado da Microsoft, como empacotá-lo com seu aplicativo e como habilitar o modo de desenvolvedor. Aqui está um exemplo de arquivo SSCD do exemplo 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>
    
  • Envie o aplicativo para a Microsoft Store para que ele seja assinado. Para fins de desenvolvimento, você pode ignorar a assinatura habilitando a assinatura de teste no banco de dados de configuração de inicialização (bcd). Consulte a opção TESTSIGNING Boot Configuration para obter detalhes.

Funcionalidades restritas

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

Acessar informações do SMBIOS de um aplicativo Universal do Windows