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 é conhecido como HSA (Aplicativo de Suporte de Hardware). Você pode distribuir e atualizar um Aplicativo de Suporte de Hardware por meio do Microsoft Store.

Comece com um aplicativo UWP (Plataforma de Windows Universal) ou um aplicativo de área de trabalho (Win32). Se você quiser usar um aplicativo da área de trabalho, use o Ponte de Desktop para criar um pacote Windows aplicativo que você pode carregar na Store.

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 a 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á Windows SDK 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 a configuração, consulte Desenvolver aplicativos UWP usando Visual Studio.

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

Criar uma Microsoft Store de dados

Uma conta de desenvolvedor no Microsoft Store é necessária. Os parceiros de hardware precisarão de uma Microsoft Store que seja diferente de sua conta de parceiro de hardware. Você precisará do nome do editor quando você for autor do manifesto do aplicativo e dos 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 Microsoft Store, acesse a página de assinatura de aplicativos UWP. Para obter mais informações, consulte Abrindo uma conta de desenvolvedor.

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 do WinRT e, portanto, está 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 envolver as chamadas RPC usando a interop .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á reunir as seguintes informações:

  • PFN do aplicativo (Nome da Família de Pacotes) do 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 ele é 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 personalizado assinado e envia esse arquivo para o desenvolvedor do aplicativo.

O desenvolvedor do aplicativo pode continuar desenvolvendo um aplicativo com funcionalidades personalizadas 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 do Aplicativo

Em seguida, modifique o arquivo de origem do manifesto do pacote do aplicativo ( ) 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 appx. No Visual Studio de soluções do Visual Studio, clique com o botão direito do mouse em "projeto– > Adicionar – > Item Existente..." para adicionar o SCCD ao seu projeto.

Adicionar 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 = Content e, 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 Armazenare, em seguida, Criar Pacotes de Aplicativos.

Observação

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

Instalar o aplicativo

Para pré-instalar um aplicativo UWP com recursos personalizados, use DISM – Gerenciamento e Manutenção 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 seu SCCD com o nome da família de pacotes.

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

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

Ponto de Partida com drivers Windows

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

Introdução à Plataforma Universal do Windows

UWP (Plataforma Universal do Windows)