共用方式為


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

[某些資訊與發行前發行的產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。]

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

從 1803 版Windows 10開始,通用 Windows 應用程式可以使用GetFirmwareEnvironmentVariableSetFirmwareEnvironmentVariable (及其 '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 (需要簽章檢查)

  • 從 Microsoft 取得 已簽署的自訂功能描述元 (SCCD) 檔案。 如需如何從 Microsoft 取得已簽署 SCCD 檔案的相關資訊,請參閱 建立自訂功能以將驅動程式與硬體支援應用程式配對 (HSA) 使用自訂功能,以搭配驅動程式配對硬體支援應用程式 (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 Store 以取得簽署。 為了開發目的,您可以在開機組態資料庫中啟用測試簽署, (bcd) 來略過簽署。 如需詳細資訊 ,請參閱 TESTSIGNING 開機組態選項

受限功能

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

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