Freigeben über


Hardwaresupport-App (HSA): Schritte für App-Treiberentwickler

In diesem Artikel wird beschrieben, wie Sie eine gerätespezifische App einem Treiber- oder RPC-Endpunkt (Remote Procedure Call) zuordnen. 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 einer benutzerdefinierten Funktion 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. Hardwarepartner benötigen ein Microsoft Store-Konto, das sich von ihrem Hardwarepartnerkonto 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, wechseln Sie zum Windows Dev Center. 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 Teil der WinRT-API ist und daher in JavaScript, C# und C++ verfügbar ist.

Wenn Ihre App mit einem NT-Dienst kommuniziert, müssen Sie die RPC-APIs verwenden. Da RPC-APIs Win32-APIs sind, die in WinRT nicht verfügbar sind, müssen Sie entweder C++, C++/CLI verwenden oder die RPC-Aufrufe mit .NET-Interoperabilität (PInvoke) umschließen. 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. Sie müssen 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. Verwenden Sie andernfalls 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 beispielsweise die folgenden Einträge 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. Während sie nicht erzwungen oder überprüft wird, platzieren Sie eine 64-Zeichen-Sequenz.

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

Adding an SCCD file into the appx package.Hinzufügen einer SCCD-Datei in das appx-Paket.

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.

Marking SCCD as content.SCCD als Inhalt markieren.

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 benutzerdefinierten Funktionen auf mobilen Plattformen.

Installieren der App

Um eine UWP-App mit benutzerdefinierten Funktionen vorinstallieren zu können, 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:

  1. Entfernen Sie den Eintrag für die angepassten Funktionalitäten aus Ihrem AppX-Manifest.

  2. Erstellen Sie Ihre App und stellen Sie sie bereit.

  3. Geben Sie in einem PowerShell-Fenster Get-AppxPackage ein.

  4. Suchen Sie Ihre App in der Liste und überprüfen Sie den genauen Paket Family Name für Ihre App.

  5. Aktualisieren Sie Ihre SCCD mit dem Package Family Name.

  6. Fügen Sie den Eintrag für die angepasste Funktionalität wieder in Ihr AppX-Manifest ein.

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

Einführung in die universelle Windows-Plattform

Universelle Windows-Plattform (UWP)