共用方式為


從通用 Windows 應用程式存取 UEFI 韌體變數

[某些資訊與發行前的產品有關,在正式發行前可能會大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。

如何從通用 Windows 應用程式存取整合可擴展韌體介面 (UEFI) 韌體變數。

從 Windows 10 版本 1803 開始,通用 Windows 應用程式可以使用 GetFirmwareEnvironmentVariableSetFirmwareEnvironmentVariable (及其 'ex' variants) 來存取 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市集。 這可確保應用程式會以受保護的應用程式的形式啟動。 如需詳細資訊,請參閱 /INTEGRITYCHECK (需要簽章檢查)

  • 向 Microsoft 取得 簽署的自訂功能描述符(SCCD) 檔案。 如需如何從Microsoft取得已簽署 SCCD 檔案的資訊,請參閱 建立自定義功能來將驅動程式與硬體支援應用程式配對使用自定義功能將硬體支援應用程式 (HSA) 與 驅動程式配對,以取得如何從 Microsoft 取得已簽署 SCCD 檔案的資訊、如何使用您的應用程式封裝它,以及如何啟用開發人員模式。 以下是來自 CustomCapability 範例的範例 SSCD 檔案:

    <?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市集以取得簽署。 基於開發目的,您可以在開機組態資料庫 (bcd) 中啟用測試簽署,以略過簽署。 如需詳細資訊,請參閱 TESTSIGNING 開機組態選項

受限制的功能

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

設置韌體環境變量擴展

從通用 Windows 應用程式存取 SMBIOS 資訊