App di supporto hardware (HSA): passaggi per sviluppatori di app

Questo argomento descrive come associare un'app specifica del dispositivo a un endpoint driver o RPC (Remote Procedure Call). Se abbinata in questo modo, l'app viene definita app di supporto hardware . È possibile distribuire e aggiornare un'app di supporto hardware tramite Microsoft Store.

Iniziare con un'app piattaforma UWP (Universal Windows Platform) (UWP) o un'app desktop (Win32). Se vuoi usare un'app desktop, usa Desktop Bridge per creare un pacchetto di app di Windows che puoi caricare nello Store.

Questa pagina descrive la procedura per un'app UWP, ma i passaggi sono simili per l'opzione Win32.

I passaggi per gli sviluppatori di driver sono descritti in Hardware Support App (HSA): Passaggi per sviluppatori di driver.

Introduzione

Prima di tutto, installare la versione più recente di Visual Studio e creare un progetto di app UWP. Per creare un'app UWP con una funzionalità personalizzata, è necessario Windows SDK versione 10.0.15063 (Windows 10 Creators Update) o versione successiva. Il file di progetto deve specificare anche la versione 10.0.15063 o successiva. Per altre informazioni su come configurare, vedi Sviluppare app UWP con Visual Studio.

A partire da Windows 10 versione 1709, puoi specificare che un'app piattaforma UWP (Universal Windows Platform) (UWP) deve essere caricata solo se è presente un driver specifico. Per informazioni su come, vedi Associazione di un driver a un'app UWP.

Creare un account di Microsoft Store

È necessario un account per sviluppatore in Microsoft Store. I partner hardware avranno bisogno di un account di Microsoft Store diverso dall'account partner hardware. Sarà necessario il nome dell'editore quando si crea il manifesto dell'app e i metadati del dispositivo nei passaggi successivi. Puoi anche riservare un nome per la tua app dopo aver creato un profilo dello Store.

Per creare un account di Microsoft Store, passare a Ottieni registrazione. Per altre info, vedi Pubblicare app e giochi di Windows.

Scelta di un linguaggio di programmazione per l'app

Se l'app comunicherà con un driver, puoi usare Windows.Devices.Custom, che fa parte dell'API WinRT e quindi disponibile in JavaScript, C# e C++.

Se l'app comunicherà con un servizio NT, è necessario usare le API RPC. Poiché le API RPC sono API Win32 non disponibili in WinRT, è necessario usare C++, C++/CLI o eseguire il wrapping delle chiamate RPC usando l'interoperabilità .NET (PInvoke). Per altre informazioni, vedere Chiamata di funzioni native da codice gestito e programmazione .NET con C++/CLI.

Contattare il proprietario della funzionalità personalizzata

A questo momento è possibile richiedere l'accesso a una funzionalità personalizzata da un proprietario delle funzionalità. Dovrai raccogliere le informazioni seguenti:

  • PFN dell'app (nome della famiglia di pacchetti) da Microsoft Store

  • Nome della funzionalità personalizzata

  • Hash della firma del certificato di firma dell'app che può essere generato dal file .cer usando certutil.exe. Il certificato deve essere SHA-256.

Per generare l'hash della firma, eseguire C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Cercare l'hash della firma nella parte inferiore e assicurarsi che sia SHA256. In caso contrario, usare un certificato SHA256 per firmare l'app. Il risultato deve avere un aspetto simile al seguente:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

Il proprietario della funzionalità usa queste informazioni per generare un file descrittore di funzionalità personalizzate firmato e invia questo file allo sviluppatore dell'app.

Lo sviluppatore di app può continuare a sviluppare un'app con funzionalità personalizzate in modalità sviluppatore in attesa che il proprietario della funzionalità approvi la richiesta. Ad esempio, usare quanto segue in SCCD in un PC desktop in modalità sviluppatore:

  • Voce del catalogo in SCCD.

    <Catalog>FFFF</Catalog>
    
  • Hash della firma del certificato nella voce dell'entità autorizzata in SCCD. Anche se non viene applicato né convalidato, inserire una sequenza di 64 caratteri.

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

Aggiungere una funzionalità personalizzata al manifesto del pacchetto dell'app

Modificare quindi il file di origine del manifesto del pacchetto dell'app (Package.appxmanifest) per includere un attributo capabilities.

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

Copiare quindi il file SCCD nella radice del pacchetto appx. In Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse su "project-> Add -> Existing Item..." per aggiungere il codice SCCD al progetto.

Aggiunta di un file SCCD nel pacchetto appx.

Contrassegnare SCCD come contenuto di compilazione facendo clic con il pulsante destro del mouse sul file SCCD e modificando Contenuto su True. Per un progetto C#, usare la proprietà Build Action = Contente per un progetto JavaScript, usare Package Action = Content.

Contrassegno SCCD come contenuto.

Infine, fare clic con il pulsante destro del mouse sul progetto, selezionare Store e quindi Crea pacchetti app.

Non è disponibile alcun supporto per le app UWP con funzionalità personalizzate nelle piattaforme per dispositivi mobili.

Installare l'app

Per pre-installare un'app UWP con funzionalità personalizzate, usa Gestione e manutenzione immagini distribuzione.

Risoluzione dei problemi

Quando il computer di destinazione è in modalità sviluppatore, è possibile provare i passaggi seguenti per eseguire il debug dell'errore di registrazione dell'app:

  1. Rimuovere la voce di funzionalità personalizzata dal manifesto AppX.

  2. Compilare l'app e distribuirla.

  3. In una finestra di PowerShell digitare Get-AppxPackage.

  4. Cercare l'app nell'elenco e verificare il nome esatto della famiglia di pacchetti per l'app.

  5. Aggiornare il codice SCCD con il nome della famiglia di pacchetti.

  6. Aggiungere di nuovo la voce di funzionalità personalizzata nel manifesto AppX.

  7. Ricompilare e distribuire.

Vedi anche

App di supporto hardware (HSA): passaggi per sviluppatori di driver

Abilitare il dispositivo per lo sviluppo

Esempio di funzionalità personalizzate

Introduzione allo sviluppo di driver Windows

Associazione di un driver a un'app UWP (piattaforma UWP (Universal Windows Platform))

Introduzione alla piattaforma UWP (Universal Windows Platform)

Piattaforma UWP (Universal Windows Platform)