Hardwareunterstützungs-App (HSA): Schritte für App-Entwickler

In diesem Thema wird beschrieben, wie Sie eine gerätespezifische App einem Treiber- oder RPC-Endpunkt (Remote Procedure Call) zuordnen. Wenn sie auf diese Weise gekoppelt wird, wird die App als Hardwareunterstützungs-App (Hardware Support App, HSA) bezeichnet. Sie können eine Hardwaresupport-App über den Microsoft Store verteilen und aktualisieren.

Beginnen Sie entweder mit einer Universelle Windows-Plattform-App (UWP) oder einer Desktop-App (Win32). Wenn Sie eine Desktop-App verwenden möchten, verwenden Sie die Desktop-Brücke, um ein Windows-App-Paket zu erstellen, das Sie in den Store hochladen können.

Auf dieser Seite wird das Verfahren für eine UWP-App beschrieben, aber die Schritte sind für die Win32-Option ähnlich.

Die Schritte für den Treiberentwickler werden unter Hardwareunterstützungs-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. Zum Erstellen einer UWP-App mit einer benutzerdefinierten Funktion benötigen Sie Windows SDK-Version 10.0.15063 (Windows 10 Creators Update) oder höher. Ihre Projektdatei muss auch Version 10.0.15063 oder höher angeben. Weitere Hilfe zum Konfigurieren finden Sie unter Entwickeln von UWP-Apps mit Visual Studio.

Ab Windows 10 Version 1709 können Sie angeben, dass eine Universelle Windows-Plattform-App (UWP) nur geladen werden soll, wenn ein bestimmter Treiber vorhanden ist. Weitere Informationen finden Sie unter Koppeln eines Treibers mit einer UWP-App.

Erstellen eines Microsoft Store-Kontos

Ein Entwicklerkonto im Microsoft Store ist erforderlich. Hardwarepartner benötigen ein Microsoft Store-Konto, das sich von ihrem Hardwarepartnerkonto unterscheidet. Sie benötigen den Namen des Herausgebers, 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 Storeprofil erstellt haben.

Um ein Microsoft Store-Konto zu erstellen, wechseln Sie zu Registrieren. Weitere Informationen finden Sie unter Veröffentlichen von Windows-Apps und -Spielen.

Auswählen einer Programmiersprache für die App

Wenn Ihre App mit einem Treiber kommuniziert, können Sie Windows.Devices.Custom verwenden, die 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 mithilfe von .NET-Interop (PInvoke) umschließen. Weitere Informationen finden Sie unter Aufrufen nativer Funktionen aus verwaltetem Code und .NET-Programmierung mit C++/CLI.

Wenden Sie sich an den Besitzer der benutzerdefinierten Funktion

Jetzt können Sie den Zugriff auf eine benutzerdefinierte Funktion von einem Funktionsbesitzer anfordern. Sie müssen die folgenden Informationen sammeln:

  • App PFN (Paketfamilienname) aus dem Microsoft Store

  • Name der benutzerdefinierten Funktion

  • Signaturhash des App-Signaturzertifikats, das mithilfe von certutil.exe aus Ihrer CER-Datei generiert werden kann. Das Zertifikat muss SHA-256 sein.

Führen Sie zum Generieren des Signaturhashs aus C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Suchen Sie unten nach dem Signaturhash, und stellen Sie sicher, dass es SICH um SHA256 handelt. Verwenden Sie andernfalls ein SHA256-Zertifikat, um Ihre App zu signieren. Das Ergebnis sollte wie folgt aussehen:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

Der Besitzer der Funktion verwendet diese Informationen, um eine signierte benutzerdefinierte Funktionsdeskriptordatei zu generieren und sendet diese Datei an den App-Entwickler.

Der App-Entwickler kann eine App mit benutzerdefinierten Funktionen im Entwicklermodus weiter entwickeln, während er darauf wartet, dass der Besitzer der Funktion die Anforderung genehmigt. Verwenden Sie beispielsweise Folgendes in der SCCD auf einem Desktop-PC im Entwicklermodus:

  • Katalogeintrag in der SCCD.

    <Catalog>FFFF</Catalog>
    
  • Zertifikatsignaturhash im Eintrag der autorisierten Entität in der SCCD. Obwohl es weder erzwungen noch überprüft wird, setzen Sie bitte eine 64-Zeichen-Sequenz.

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

Hinzufügen einer benutzerdefinierten Funktion zum App-Paketmanifest

Ändern Sie als Nächstes die Quelldatei ihres App-Paketmanifests (Package.appxmanifest), um ein Capabilities-Attribut einzuschließen.

<?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 Paketstamm des appx-Pakets. Klicken Sie im Projektmappen-Explorer von Visual Studio mit der rechten Maustaste auf "Projekt –> Hinzufügen –> Vorhandenes Element..." , um dem Projekt die SCCD hinzuzufügen.

Hinzufügen einer SCCD-Datei zum appx-Paket.

Markieren Sie die SCCD als Buildinhalt, indem Sie mit der rechten Maustaste auf die SCCD-Datei klicken und Inhalt in True ändern. Verwenden Sie für ein C#-Projekt die -Eigenschaft Build Action = Content, und verwenden Sie Package Action = Contentfür ein JavaScript-Projekt .

Markieren von SCCD als Inhalt.

Klicken Sie abschließend mit der rechten Maustaste auf das Projekt, wählen Sie Store und dann App-Pakete erstellen aus.

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 vorab zu installieren, verwenden Sie DISM – Deployment Image Servicing and Management.

Problembehandlung

Wenn sich der Zielcomputer im Entwicklermodus befindet, können Sie die folgenden Schritte ausführen, um einen Fehler bei der App-Registrierung zu debuggen:

  1. Entfernen Sie den Eintrag für benutzerdefinierte Funktionen aus Ihrem AppX-Manifest.

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

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

  4. Suchen Sie in der Liste nach Ihrer App, und überprüfen Sie den genauen Paketfamiliennamen für Ihre App.

  5. Aktualisieren Sie Ihre SCCD mit dem Paketfamiliennamen.

  6. Fügen Sie dem AppX-Manifest den Eintrag für benutzerdefinierte Funktionen wieder hinzu.

  7. Neu erstellen und bereitstellen.

Weitere Informationen

Hardwareunterstützungs-App (HSA): Schritte für Treiberentwickler

Aktivieren Ihres Geräts für die Entwicklung

Beispiel für benutzerdefinierte Funktionen

Erste Schritte mit Windows-Treibern

Koppeln eines Treibers mit einer Universelle Windows-Plattform-App (UWP)

Einführung in die universelle Windows-Plattform

Universelle Windows-Plattform (UWP)