從通用 Windows 應用程式存取 UEFI 韌體變數
[某些資訊與發行前的產品有關,在正式發行前可能會大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。
如何從通用 Windows 應用程式存取整合可擴展韌體介面 (UEFI) 韌體變數。
從 Windows 10 版本 1803 開始,通用 Windows 應用程式可以使用 GetFirmwareEnvironmentVariable 和 SetFirmwareEnvironmentVariable (及其 '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 開機組態選項。
相關主題