ユニバーサル Windows アプリから UEFI ファームウェア変数にアクセスする

[一部の情報はリリース前の製品に関することであり、正式版がリリースされるまでに大幅に変更される可能性があります。 ここに記載された情報について、Microsoft は明示または黙示を問わずいかなる保証をするものでもありません。]

ユニバーサル Windows アプリから Unified Extensible Firmware Interface (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>
    
  • Microsoft Store にアプリを送信する前に、すべてのプロジェクト構成に対してリンカー オプション /INTEGRITYCHECK を設定します。 これにより、アプリが保護されたアプリとして起動されます。 詳細については、「 /INTEGRITYCHECK (署名チェックが必要)」 を参照してください。

  • Microsoft から 署名付きカスタム機能記述子 (SCCD) ファイルを取得します。 Microsoft から署名済み SCCD ファイルを取得する方法、アプリとパッケージ化する方法、開発者モードを有効にする方法については、「ハードウェア サポート アプリ (HSA) とドライバーをペアリングするためのカスタム機能の作成」および「カスタム機能を使用してハードウェア サポート アプリ (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 ブート構成オプション 」を参照してください。

制限付き機能

GetFirmwareEnvironmentVariable

GetFirmwareEnvironmentVariableEx

SetFirmwareEnvironmentVariable

SetFirmwareEnvironmentVariableEx

ユニバーサル Windows アプリから SMBIOS 情報にアクセスする