Hardwaresupport-App (HSA): Schritte für App-Treiberentwickler
In diesem Thema wird beschrieben, wie Sie eine gerätespezifische App mit einem Treiber oder RPC (Remote Procedure Call)-Endpunkt verknüpfen. Wenn die App auf diese Weise gekoppelt ist, wird sie als Hardware Support App (HSA) bezeichnet. Sie können eine Hardware Support App über den Microsoft Store distribuieren und aktualisieren.
Beginnen Sie entweder mit einer Universal Windows Platform (UWP)-App oder einer Desktop-App (Win32). Wenn Sie eine Desktop-App verwenden möchten, erstellen Sie mit der Desktop Bridge ein Windows-App-Paket, das Sie in den Store hochladen können.
Diese Seite beschreibt die Vorgehensweise für eine UWP-App, aber die Schritte sind für die Win32-Option ähnlich.
Die Schritte für den Entwickler*in von Treibern sind in Hardware Support App (HSA): Schritte für Treiberentwickler beschrieben.
Erste Schritte
Installieren Sie zunächst die neueste Version von Visual Studio und erstellen Sie ein UWP-App-Projekt. Um eine UWP-App mit angepassten Funktionalitäten zu erstellen, benötigen Sie Windows SDK Version 10.0.15063 (Windows 10 Creators Update) oder höher. In Ihrer Projektdatei muss auch die Version 10.0.15063 oder höher angegeben sein. Weitere Hilfe bei der Konfiguration finden Sie unter Entwickeln von UWP-Apps mit Visual Studio.
Ab Windows 10 Version 1709 können Sie festlegen, dass eine Universal Windows Platform (UWP)-App nur geladen werden soll, wenn ein bestimmter Treiber vorhanden ist. Wie das geht, erfahren Sie unter Koppeln eines Treibers mit einer UWP-App.
Erstellen Sie ein Microsoft Store-Konto
Ein Entwicklerkonto im Microsoft Store ist erforderlich. Hardware-Partner benötigen ein Microsoft Store-Konto, das sich von ihrem Hardware-Partner-Konto unterscheidet. Sie benötigen den Herausgebernamen, wenn Sie das App-Manifest und die Gerätemetadaten in späteren Schritten erstellen. Sie können auch einen Namen für Ihre App reservieren, nachdem Sie ein Store-Profil erstellt haben.
Um ein Microsoft Store-Konto zu erstellen, gehen Sie zu Registrierung. Weitere Informationen finden Sie unter Windows Apps und Spiele veröffentlichen.
Auswahl einer Programmiersprache für die App
Wenn Ihre App mit einem Treiber kommuniziert, können Sie Windows.Devices.Custom verwenden, das ein Element der WinRT API ist und daher in JavaScript, C# und C++ verfügbar ist.
Wenn Ihre App mit einem NT-Dienst kommunizieren soll, müssen Sie die RPC APIs verwenden. Da es sich bei den RPC-APIs um Win32-APIs handelt, die in WinRT nicht verfügbar sind, müssen Sie entweder C++, C++/CLI verwenden oder die RPC-Aufrufe mit Hilfe von .NET Interop (PInvoke) verpacken. Weitere Informationen finden Sie unter Aufruf nativer Funktionen aus verwaltetem Code und .NET-Programmierung mit C++/CLI.
Kontaktieren des Besitzers der angepassten Funktionalitäten
Jetzt können Sie den Zugriff auf eine angepasste Funktionalität von einem Besitzer der Funktionalität anfordern. Dazu müssen Sie die folgenden Informationen sammeln:
App PFN (Package Family Name) aus dem Microsoft Store
Name der angepassten Funktionalität
Signatur Hash des Signierzertifikats der App, das Sie mit certutil.exe aus Ihrer .cer-Datei generieren können. Das Zertifikat muss SHA-256 sein.
Um den Signatur-Hash zu generieren, führen Sie C:\Windows\System32\certutil.exe -dump CertificateName.cer
aus.
Achten Sie auf den Signatur-Hash am unteren Rand und stellen Sie sicher, dass er SHA256 ist. Andernfalls verwenden Sie ein SHA256-Zertifikat, um Ihre App zu signieren. Das Ergebnis sollte wie folgt aussehen:
Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4
Der Besitzer der Funktionalitäten generiert mit diesen Informationen eine Signierte Datei für angepasste Funktionalitäten und sendet diese Datei an den/die Entwickler*in der App.
Der/die Entwickler*in kann die App mit angepassten Funktionalitäten im Entwicklermodus weiterentwickeln, während er/sie darauf wartet, dass der Besitzer der Funktionalitäten die Anfrage genehmigt. Verwenden Sie zum Beispiel Folgendes im SCCD auf einem Desktop-PC im Entwicklermodus:
Katalogeintrag in der SCCD.
<Catalog>FFFF</Catalog>
Zertifikat-Signatur-Hash im Eintrag für die autorisierte Entität in der SCCD. Obwohl dies weder erzwungen noch validiert wird, geben Sie bitte eine 64-stellige Sequenz ein.
<AuthorizedEntity AppPackageFamilyName="MicrosoftHSATest.Microsoft.SDKSamples.Hsa.CPP_q536wpkpf5cy2" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity>
Hinzufügen einer angepassten Funktionalität zum App-Paket-Manifest
Ändern Sie als nächstes Ihre App-Paket-Manifest Quelldatei (Package.appxmanifest
), um ein Attribut für Funktionalitäten einzufügen.
<?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>
Kopieren Sie dann die SCCD-Datei in den Paket-Root des appx-Pakets. Klicken Sie im Lösungs-Explorer von Visual Studio mit der rechten Maustaste auf „Projekt-> Hinzufügen -> Bestehendes Element...“, um die SCCD zu Ihrem Projekt hinzuzufügen.
Markieren Sie die SCCD als Build-Inhalt, indem Sie mit der rechten Maustaste auf die SCCD-Datei klicken und Inhalt in Wahr ändern. Für ein C#-Projekt verwenden Sie die Eigenschaft Build Action = Content
und für ein JavaScript-Projekt Package Action = Content
.
Klicken Sie schließlich mit der rechten Maustaste auf das Projekt, wählen Sie Store und dann App-Pakete erstellen.
Es gibt keine Unterstützung für UWP-Apps mit angepassten Funktionalitäten auf mobilen Plattformen.
Installieren der App
Um eine UWP-App mit angepassten Funktionalitäten vorzuinstallieren, verwenden Sie DISM – Deployment Image Servicing and Management.
Problembehandlung
Wenn sich der Zielcomputer im Entwicklermodus befindet, können Sie die folgenden Schritte versuchen, um den Fehler bei der App-Registrierung zu beheben:
Entfernen Sie den Eintrag für die angepassten Funktionalitäten aus Ihrem AppX-Manifest.
Erstellen Sie Ihre App und stellen Sie sie bereit.
Geben Sie in einem PowerShell-Fenster
Get-AppxPackage
ein.Suchen Sie Ihre App in der Liste und überprüfen Sie den genauen Paket Family Name für Ihre App.
Aktualisieren Sie Ihre SCCD mit dem Package Family Name.
Fügen Sie den Eintrag für die angepasste Funktionalität wieder in Ihr AppX-Manifest ein.
Neu erstellen und bereitstellen.
Weitere Informationen
Hardware Support App (HSA)-Schritte für Entwickler*innen von Treibern
Aktivieren Ihres Geräts für die Entwicklung
Beispiel für angepasste Funktionalitäten
Erste Schritte bei der Entwicklung von Windows-Treibern
Koppeln eines Treibers mit einer Universal Windows Platform-(UWP-)App