从通用 Windows 应用访问 UEFI 固件变量
[一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft 对于此处提供的信息不作任何明示或默示的担保。]
如何从通用 Windows 应用访问统一可扩展固件接口 (UEFI) 固件变量。
从 Windows 10 版本 1803 开始,通用 Windows 应用可以使用 GetFirmwareEnvironmentVariable 和 SetFirmwareEnvironmentVariable (及其“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>
在将应用提交到 Microsoft Store 之前,为所有项目配置设置链接器选项 /INTEGRITYCHECK。 这可确保应用将作为受保护的应用启动。 有关详细信息 ,请参阅 /INTEGRITYCHECK (要求签名检查) 。
从 Microsoft 获取 签名的自定义功能描述符 (SCCD) 文件。 有关如何从 Microsoft 获取已签名的 SCCD 文件、如何将 它与应用打包到) 应用 (以及 如何启用开发人员模式的信息,请参阅创建将驱动程序与硬件 支持应用 (HSA) 配对的自定义功能 。 下面是 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 启动配置选项 。
相关主题