HSA (aplicativo de suporte de hardware): etapas para desenvolvedores de aplicativos

Este tópico descreve como associar um aplicativo específico do dispositivo a um driver ou ponto de extremidade RPC (Chamada de Procedimento Remoto). Quando emparelhado dessa forma, o aplicativo é chamado de HSA (Aplicativo de Suporte de Hardware). Você pode distribuir e atualizar um Aplicativo de Suporte a Hardware por meio da Microsoft Store.

Comece com um aplicativo de Plataforma Universal do Windows (UWP) ou um aplicativo da área de trabalho (Win32). Se você quiser usar um aplicativo da área de trabalho, use o Ponte de Desktop para criar um Pacote de Aplicativos do Windows que possa ser carregado na Loja.

Esta página descreve o procedimento para um aplicativo UWP, mas as etapas são semelhantes para a opção Win32.

As etapas para o desenvolvedor do driver são descritas em HSA (Aplicativo de Suporte de Hardware): etapas para desenvolvedores de driver.

Introdução

Primeiro, instale a versão mais recente do Visual Studio e crie um projeto de aplicativo UWP. Para criar um aplicativo UWP com uma funcionalidade personalizada, você precisará do SDK do Windows versão 10.0.15063 (Atualização do Windows 10 para Criadores) ou posterior. O arquivo de projeto também deve especificar a versão 10.0.15063 ou superior. Para obter mais ajuda para se configurar, consulte Desenvolver aplicativos UWP usando o Visual Studio.

A partir Windows 10 versão 1709, você pode especificar que um aplicativo de Plataforma Universal do Windows (UWP) só deve ser carregado se um driver específico estiver presente. Para saber como, confira Emparelhamento de um driver com um aplicativo UWP.

Criar uma conta da Microsoft Store

Uma conta de desenvolvedor na Microsoft Store é necessária. Os parceiros de hardware precisarão de uma conta da Microsoft Store diferente de sua conta de parceiro de hardware. Você precisará do nome do editor ao criar o manifesto do aplicativo e os metadados do dispositivo em etapas posteriores. Você também pode reservar um nome para seu aplicativo depois de criar um perfil de loja.

Para criar uma conta da Microsoft Store, acesse Obter registro. Para obter mais informações, consulte Publicar aplicativos e jogos do Windows.

Escolhendo uma linguagem de programação para o aplicativo

Se seu aplicativo se comunicar com um driver, você poderá usar Windows.Devices.Custom, que faz parte da API winRT e, portanto, disponível em JavaScript, C#e C++.

Se seu aplicativo se comunicar com um serviço NT, você precisará usar as APIs RPC. Como as APIs RPC são APIs Win32 que não estão disponíveis no WinRT, você precisa usar C++, C++/CLI ou encapsular as chamadas RPC usando a interoperabilidade .NET (PInvoke). Para obter mais informações, consulte Chamando funções nativas de código gerenciado e programação .NET com C++/CLI.

Entre em contato com o proprietário da funcionalidade personalizada

Agora você está pronto para solicitar acesso a uma funcionalidade personalizada de um proprietário de funcionalidade. Você precisará coletar as seguintes informações:

  • PFN do aplicativo (Nome da Família de Pacotes) da Microsoft Store

  • Nome da funcionalidade personalizada

  • Hash de assinatura do certificado de assinatura do aplicativo que pode ser gerado do arquivo .cer usando certutil.exe. O certificado deve ser SHA-256.

Para gerar o hash de assinatura, execute C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Procure o hash de assinatura próximo à parte inferior e verifique se é SHA256. Caso contrário, use um certificado SHA256 para assinar seu aplicativo. O resultado deve ter esta aparência:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

O proprietário da funcionalidade usa essas informações para gerar um arquivo descritor de funcionalidade personalizada assinado e envia esse arquivo para o desenvolvedor do aplicativo.

O desenvolvedor do aplicativo pode continuar desenvolvendo um aplicativo com recursos personalizados no modo de desenvolvedor enquanto aguarda o proprietário da funcionalidade aprovar a solicitação. Por exemplo, use o seguinte no SCCD em um computador desktop no Modo de Desenvolvedor:

  • Entrada de catálogo no SCCD.

    <Catalog>FFFF</Catalog>
    
  • Hash de assinatura de certificado na entrada de entidade autorizada no SCCD. Embora ele não seja imposto nem validado, coloque uma sequência de 64 caracteres.

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

Adicionar uma funcionalidade personalizada ao Manifesto do Pacote de Aplicativos

Em seguida, modifique o arquivo de origem do manifesto do pacote do aplicativo (Package.appxmanifest) para incluir um atributo de funcionalidades.

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

Em seguida, copie o arquivo SCCD para a raiz do pacote do pacote appx. No gerenciador de soluções do Visual Studio, clique com o botão direito do mouse em "project-> Add -> Existing Item..." para adicionar o SCCD ao seu projeto.

Adicionando um arquivo SCCD ao pacote appx.

Marque o SCCD como conteúdo de build clicando com o botão direito do mouse no arquivo SCCD e alterando Conteúdo para True. Para um projeto C#, use a propriedade Build Action = Contente, para um projeto JavaScript, use Package Action = Content.

Marcando SCCD como conteúdo.

Por fim, clique com o botão direito do mouse no projeto, selecione Loja e , em seguida, Criar Pacotes de Aplicativos.

Não há suporte para aplicativos UWP com recursos personalizados em plataformas móveis.

Instalar o aplicativo

Para pré-instalar um aplicativo UWP com recursos personalizados, use DISM – Serviço e Gerenciamento de Imagens de Implantação.

Solução de problemas

Quando o computador de destino estiver no Modo de Desenvolvedor, você poderá tentar as seguintes etapas para depurar a falha de registro do aplicativo:

  1. Remova a entrada de funcionalidade personalizada do manifesto do AppX.

  2. Crie seu aplicativo e implante-o.

  3. Em uma janela do PowerShell, digite Get-AppxPackage.

  4. Procure seu aplicativo na lista e verifique o nome exato da família de pacotes para seu aplicativo.

  5. Atualize o SCCD com o nome da família de pacotes.

  6. Adicione a entrada de funcionalidade personalizada novamente ao manifesto do AppX.

  7. Recompilar e implantar.

Consulte Também

HSA (aplicativo de suporte de hardware): etapas para desenvolvedores de driver

Habilitar o dispositivo para desenvolvimento

Exemplo de funcionalidade personalizada

Introdução com drivers do Windows

Emparelhando um driver com um aplicativo de Plataforma Universal do Windows (UWP)

Introdução à Plataforma Universal do Windows

UWP (Plataforma Universal do Windows)