次の方法で共有


ハードウェア サポート アプリ (HSA): アプリ開発者向けの手順

Important

デバイス メタデータは非推奨となり、Windows の今後のリリースで削除される予定です。 この機能の置き換えについては、「 ドライバー パッケージ コンテナー メタデータ」を参照してください。

この記事では、デバイス固有のアプリをドライバーまたは RPC (リモート プロシージャ コール) エンドポイントに関連付ける方法について説明します。 この方法でペアリングすると、アプリはハードウェア サポート アプリ (HSA) と呼ばれます。 Microsoft Store を通じてハードウェア サポート アプリを配布および更新できます。

ユニバーサル Windows プラットフォーム (UWP) アプリまたはデスクトップ (Win32) アプリから始めます。 If you would like to use a desktop app, use the Desktop Bridge to create a Windows App Package that you can upload to the Store.

このページでは UWP アプリの手順について説明しますが、Win32 オプションの手順も同様です。

ドライバー開発者向けの手順は、ハードウェア サポート アプリ (HSA) で説明されています。ドライバー開発者向けの手順

はじめに

まず、最新バージョンの Visual Studio をインストールし、UWP アプリ プロジェクトを作成します。 カスタム機能を備えた UWP アプリを構築するには、Windows SDK バージョン 10.0.15063 (Windows 10 Creators Update) 以降が必要です。 プロジェクト ファイルではバージョン 10.0.15063 以降を指定する必要もあります。 構成に関する詳細なヘルプについては、「Visual Studio を使用した UWP アプリの開発」を参照してください。

Windows 10 バージョン 1709 以降では、特定のドライバーが存在する場合にのみユニバーサル Windows プラットフォーム (UWP) アプリを読み込むように指定できます。 その方法については、「ドライバーと UWP アプリのペアリング」を参照してください

Microsoft Store アカウントを作成する

Microsoft Store の開発者アカウントが必要です。 ハードウェア パートナーには、ハードウェア パートナー アカウントとは異なる Microsoft Store アカウントが必要です。 後の手順でアプリ マニフェストとデバイス メタデータを作成するときは、発行元名が必要です。 ストア プロファイルを作成したら、アプリの名前を予約することもできます。

Microsoft Store アカウントを作成するには、 Windows デベロッパー センターに移動します。 詳細については、「Windows アプリとゲームを公開する」を参照してください。

アプリのプログラミング言語の選択

If your app communicates with a driver, you can use Windows.Devices.Custom, which is part of the WinRT API, and therefore available in JavaScript, C#, and C++.

アプリが NT サービスと通信する場合は、RPC API を使用する必要があります。 RPC API は WinRT で使用できない Win32 API であるため、C++、C++/CLI を使用するか、.NET 相互運用機能 (PInvoke) を使用して RPC 呼び出しをラップする必要があります。 詳細については、「マネージ コードからのネイティブ関数の呼び出し」および「C++/CLI を使用した .NET プログラミング」を参照してください。

カスタム機能の所有者に連絡する

これで、機能所有者にカスタム機能へのアクセスをリクエストする準備が整いました。 次の情報を収集する必要があります。

  • Microsoft Store からのアプリ PFN (パッケージ ファミリ名)
  • カスタム機能の名前
  • certutil.exe を使用して .cer ファイルから生成できるアプリ署名証明書の署名ハッシュ。 証明書は SHA-256 である必要があります。

署名ハッシュを生成するには、 を実行しますC:\Windows\System32\certutil.exe -dump CertificateName.cer

下部近くの署名ハッシュを探し、それが SHA256 であることを確認します。 それ以外の場合は、SHA256 証明書を使用してアプリに署名します。 結果は次のようになります。

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

機能所有者は、この情報を使用して署名付きカスタム機能記述子ファイルを生成し、このファイルをアプリ開発者に送信します。

アプリ開発者は、機能所有者がリクエストを承認するまで待機している間、開発者モードでカスタム機能を使用してアプリの開発を続けることができます。 For example, use the following entries in the SCCD on a desktop PC in Developer Mode:

  • SCCD のカタログ エントリ。

    <Catalog>FFFF</Catalog>
    
  • SCCD の承認されたエンティティ エントリの証明書署名ハッシュ。 適用も検証もされていませんが、64 文字のシーケンスを配置します。

    <AuthorizedEntity AppPackageFamilyName="MicrosoftHSATest.Microsoft.SDKSamples.Hsa.CPP_q536wpkpf5cy2" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity>
    

カスタム機能をアプリパッケージマニフェストに追加する

次に、アプリ パッケージ マニフェスト ソース ファイル (Package.appxmanifest) を変更して、機能属性を含めます。

<?xml version="1.0" encoding="utf-8"?>
<Package
  ...
  xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4">
...
<Capabilities>
    <uap4:CustomCapability Name="CompanyName.customCapabilityName_PublisherID"/>
</Capabilities>
</Package>

次に、SCCD ファイルを appx パッケージのパッケージ ルートにコピーします。 Visual Studio のソリューション エクスプローラーで、[プロジェクト> - 追加 -> 既存の項目…] を右クリックして、SCCD をプロジェクトに追加します。

appx パッケージに SCCD ファイルを追加する。

Mark the SCCD as build content by right clicking on the SCCD file and changing Content to True. C# プロジェクトの場合はプロパティ を使用しBuild Action = Content、JavaScript プロジェクトの場合は を使用しますPackage Action = Content

SCCD をコンテンツとしてマークする。

Finally, right-click the project, select Store, then Create App Packages.

モバイル プラットフォームでカスタム機能を備えた UWP アプリはサポートされません。

アプリをインストールする

カスタム機能を備えた UWP アプリをプレインストールするには、 DISM - 展開イメージのサービスと管理を使用します。

Troubleshooting

ターゲット マシンが開発者モードの場合は、次の手順を試してアプリの登録の失敗をデバッグできます。

  1. AppX マニフェストからカスタム機能エントリを削除します。
  2. アプリを構築してデプロイします。
  3. PowerShell ウィンドウで、「 Get-AppxPackage」と入力します。
  4. リストでアプリを探し、アプリの正確なパッケージ ファミリ名を確認します。
  5. パッケージ ファミリ名を使用して SCCD を更新します。
  6. カスタム機能エントリを AppX マニフェストに再度追加します。
  7. 再構築してデプロイします。