Udostępnij za pośrednictwem


Uzyskiwanie dostępu do zmiennych oprogramowania układowego UEFI z aplikacji uniwersalnej systemu Windows

[Niektóre informacje odnoszą się do wstępnie wydanego produktu, który może zostać znacząco zmodyfikowany przed jego wydaniem komercyjnym. Firma Microsoft nie udziela żadnych gwarancji, wyraźnych ani domniemanych, w odniesieniu do informacji podanych tutaj.]

Jak uzyskać dostęp do zmiennych oprogramowania układowego Unified Extensible Firmware Interface (UEFI) z aplikacji uniwersalnej systemu Windows.

Począwszy od systemu Windows 10 w wersji 1803, aplikacje uniwersalne systemu Windows mogą używać GetFirmwareEnvironmentVariable i SetFirmwareEnvironmentVariable (i ich warianty ex) w celu uzyskania dostępu do zmiennych oprogramowania układowego UEFI, wykonując następujące czynności:

  • Zadeklaruj niestandardową funkcjonalność Microsoft.firmwareRead_cw5n1h2txyewy w manifeście, aby odczytać zmienną oprogramowania układowego lub Microsoft.firmwareWrite_cw5n1h2txyewy funkcjonalność zapisu zmiennej oprogramowania układowego.

  • Zadeklaruj również uprawnienie protectedApp ograniczone w manifeście aplikacji.

  • Na przykład następujące dodatki manifestu aplikacji umożliwiają aplikacji uniwersalnej systemu Windows odczytywanie zmiennych oprogramowania układowego:

    <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>
    
  • Ustaw opcję linkera /INTEGRITYCHECKdla wszystkich konfiguracji projektu przed przesłaniem aplikacji do Sklepu Microsoft. Dzięki temu aplikacja zostanie uruchomiona jako chroniona aplikacja. Aby uzyskać szczegółowe informacje, zobacz /INTEGRITYCHECK (Wymagaj sprawdzania podpisu).

  • Uzyskaj podpisany przez Microsoft plik deskryptora niestandardowych możliwości (SCCD). Zobacz Tworzenie niestandardowej funkcjonalności do parowania sterownika z aplikacją do obsługi sprzętu (HSA) i Używanie niestandardowej funkcjonalności do parowania aplikacji do obsługi sprzętu (HSA) ze sterownikiem, aby uzyskać informacje na temat uzyskiwania podpisanego pliku SCCD od firmy Microsoft, jak spakować go z aplikacją i jak włączyć tryb dewelopera. Oto przykładowy plik SSCD z przykładu 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>
    
  • Prześlij aplikację do sklepu Microsoft Store, aby ją zalogować. W celach programistycznych można pominąć podpisywanie, włączając logowanie testowe w bazie danych konfiguracji rozruchu (bcd). Aby uzyskać szczegółowe informacje, zobacz opcję konfiguracji rozruchu TESTSIGNING.

możliwości z ograniczeniami

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

uzyskiwanie dostępu do informacji SMBIOS z aplikacji uniwersalnej systemu Windows