Partager via


Application de Support Matériel (HSA) : Étapes pour les Développeurs d’Applications

Cet article explique comment associer une application spécifique à un appareil à un pilote ou un point de terminaison RPC (Appel de procédure distante). Lorsqu’elle est associée de cette manière, l’application est appelée une application de support matériel (HSA). Vous pouvez distribuer et mettre à jour une application de support matériel via le Microsoft Store.

Commencez par une application Universal Windows Platform (UWP) ou une application de bureau (Win32). Si vous souhaitez utiliser une application de bureau, utilisez le pont du bureau pour créer un package d’application Windows que vous pouvez charger dans le Windows Store.

Cette page décrit la procédure pour une application UWP, mais les étapes sont similaires pour l’option Win32.

Les étapes pour le développeur de pilotes sont décrites dans Application de support matériel (HSA) : Étapes pour les développeurs de pilotes.

Getting Started

Tout d’abord, installez la dernière version de Visual Studio et créez un projet d’application UWP. Pour créer une application UWP avec une fonctionnalité personnalisée, vous avez besoin du Kit de développement logiciel (SDK) Windows version 10.0.15063 (Windows 10 Creators Update) ou version ultérieure. Votre fichier de projet doit également spécifier la version 10.0.15063 ou supérieure. Pour plus d’aide sur la configuration, veuillez consulter la section Développer des applications UWP avec Visual Studio.

À partir de la version 1709 de Windows 10, vous pouvez spécifier qu’une application Universal Windows Platform (UWP) ne doit se charger que si un pilote spécifique est présent. Pour savoir comment, veuillez consulter la section Associer un pilote avec une application UWP.

Créer un compte Microsoft Store

Un compte développeur sur le Microsoft Store est requis. Les partenaires matériels ont besoin d’un compte Microsoft Store différent de celui de leur compte partenaire matériel. Vous avez besoin du nom de l’éditeur lorsque vous créez le manifeste de l’application et les métadonnées de l’appareil dans les étapes ultérieures. Vous pouvez également réserver un nom pour votre application une fois que vous avez créé un profil store.

Pour créer un compte Microsoft Store, accédez au Centre de développement Windows. Pour plus d’informations, veuillez consulter la section Publier des applications et jeux Windows.

Choisir un langage de programmation pour l’application

Si votre application communique avec un pilote, vous pouvez utiliser Windows.Devices.Custom, qui fait partie de l’API WinRT et, par conséquent, disponible en JavaScript, C# et C++.

Si votre application communique avec un service NT, vous devez utiliser les API RPC. Étant donné que les API RPC sont des API Win32 qui ne sont pas disponibles dans WinRT, vous devez utiliser C++, C++/CLI ou encapsuler les appels RPC à l’aide de l’interopérabilité .NET (PInvoke). Pour plus d’informations, veuillez consulter la section Appeler des fonctions natives depuis du code managé et .NET programming with C++/CLI.

Contacter le propriétaire de la fonctionnalité personnalisée

Vous êtes maintenant prêt à demander l’accès à une fonctionnalité personnalisée auprès d’un propriétaire de fonctionnalité. Vous devez collecter les informations suivantes :

  • Nom de famille du package (PFN) de l'application depuis le Microsoft Store
  • Nom de la fonctionnalité personnalisée
  • Hachage de la signature du certificat de signature de l’application, qui peut être généré à partir de votre fichier .cer en utilisant certutil.exe. Le certificat doit être en SHA-256.

Pour générer le hachage de la signature, exécutez C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Recherchez le hachage de la signature en bas et assurez-vous qu’il est en SHA256. Sinon, utilisez un certificat SHA256 pour signer votre application. Le résultat devrait ressembler à ceci :

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

Le propriétaire de la fonctionnalité utilise ces informations pour générer un fichier Descripteur de fonctionnalité personnalisée signée et envoie ce fichier au développeur de l’application.

Le développeur d’application peut continuer à développer une application avec des fonctionnalités personnalisées en mode développeur tout en attendant que le propriétaire de la fonctionnalité approuve la demande. Par exemple, utilisez les entrées suivantes dans sccD sur un PC de bureau en mode développeur :

  • Entrée de catalogue dans le SCCD.

    <Catalog>FFFF</Catalog>
    
  • Hachage de la signature du certificat pour l'inscription de l’entité autorisée dans le SCCD. Bien qu’il ne soit pas appliqué ou validé, placez une séquence de 64 caractères.

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

Ajouter une fonctionnalité personnalisée au manifeste du package d’application

Ensuite, modifiez votre fichier source du manifeste du package d’application (Package.appxmanifest) pour inclure un attribut de capacités.

<?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>

Ensuite, copiez le fichier SCCD à la racine du package de l’application appx. Dans l’explorateur de solutions de Visual Studio, faites un clic droit sur « projet-> Ajouter -> Élément existant… » pour ajouter le SCCD à votre projet.

Ajout d’un fichier SCCD dans le package appx.

Marquez le SCCD comme contenu de build en cliquant avec le bouton droit sur le fichier SCCD et en remplaçant le contenu par True. Pour un projet C#, utilisez la propriété Build Action = Content, et pour un projet JavaScript, utilisez Package Action = Content.

Marquer le SCCD comme contenu.

Enfin, cliquez avec le bouton droit sur le projet, sélectionnez Store, puis Créez des packages d’application.

Il n’existe aucune prise en charge des applications UWP avec des fonctionnalités personnalisées sur des plateformes mobiles.

Installer l’application

Pour préinstaller une application UWP avec des fonctionnalités personnalisées, utilisez DISM - Deployment Image Servicing and Management.

Troubleshooting

Lorsque la machine cible est en Mode développeur, vous pouvez essayer les étapes suivantes pour déboguer un échec d’enregistrement d’application :

  1. Supprimez l’entrée de fonctionnalité personnalisée de votre manifeste AppX.
  2. Créez votre application et déployez-la.
  3. Dans une fenêtre PowerShell, tapez Get-AppxPackage.
  4. Recherchez votre application dans la liste et vérifiez le nom exact de famille du package de votre application.
  5. Mettez à jour votre SCCD avec le nom de famille du paquet.
  6. Ajoutez l’entrée de fonctionnalité personnalisée de nouveau dans votre manifeste AppX.
  7. Reconstruisez et déployez.