Accedere alle variabili del firmware UEFI da un'app di Windows universale

[Alcune informazioni riguardano il prodotto non rilasciato che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.

Come accedere alle variabili del firmware UEFI (Unified Extensible Firmware Interface) da un'app di Windows universale.

A partire da Windows 10 versione 1803, le app di Windows universali possono usare GetFirmwareEnvironmentVariable e SetFirmwareEnvironmentVariable (e le relative varianti "ex") per accedere alle variabili del firmware UEFI seguendo questa procedura:

  • Dichiarare la Microsoft.firmwareRead_cw5n1h2txyewy funzionalità personalizzata nel manifesto per leggere una variabile firmware e/o la funzionalità Microsoft.firmwareWrite_cw5n1h2txyewy per scrivere una variabile firmware.

  • Dichiarare anche la funzionalità con restrizioni protectedApp nel manifesto dell'app.

  • Ad esempio, le aggiunte del manifesto dell'app seguenti consentono all'app di Windows universale di leggere le variabili del 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>
    
  • Impostare l'opzione del linker /INTEGRITYCHECK, per tutte le configurazioni del progetto, prima di inviare l'app a Microsoft Store. In questo modo si garantisce che l'app venga avviata come app protetta. Per informazioni dettagliate, vedere /INTEGRITYCHECK (Richiedi controllo della firma).

  • Ottenere un file SCCD (Signed Custom Capability Descriptor ) da Microsoft. Vedere Creazione di una funzionalità personalizzata per associare un driver a un'app di supporto hardware (HSA) e Uso di una funzionalità personalizzata per associare un'app di supporto hardware (HSA) a un driver per informazioni su come ottenere un file SCCD firmato da Microsoft, su come crearne il pacchetto con l'app e su come abilitare la modalità sviluppatore. Di seguito è riportato un esempio di file SSCD dell'esempio 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>
    
  • Inviare l'app a Microsoft Store per ottenere la firma. Ai fini dello sviluppo, è possibile ignorare la firma abilitando la firma del test nel database di configurazione di avvio (bcd). Per informazioni dettagliate , vedere l'opzione di configurazione di avvio TESTSIGNING .

Funzionalità con restrizioni

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

Accedere alle informazioni SMBIOS da un'app di Windows universale