Compartilhar via


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

Important

Os metadados do dispositivo foram preteridos e serão removidos numa versão futura do Windows. Para obter informações sobre a substituição dessa funcionalidade, consulte Metadados de Contêiner do Pacote de Driver.

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

Comece com um aplicativo Plataforma Universal do Windows (UWP) ou um aplicativo de área de trabalho (Win32). If you would like to use a desktop app, use the Desktop Bridge to create a Windows App Package that you can upload to the 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 Aplicativo de Suporte a Hardware (HSA): Etapas para Desenvolvedores de Drivers.

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ê precisa do SDK do Windows versão 10.0.15063 (Windows 10 Creators Update) ou posterior. Seu arquivo de projeto também deve especificar a versão 10.0.15063 ou superior. Para obter mais ajuda para configurar, consulte Desenvolver aplicativos UWP usando o Visual Studio.

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

Criar uma conta da Microsoft Store

É necessário ter uma conta de desenvolvedor na Microsoft Store. Os parceiros de hardware precisam de uma conta da Microsoft Store diferente de sua conta de parceiro de hardware. Você precisa 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 o Centro de Desenvolvimento do Windows. Para obter mais informações, confira Publicar aplicativos e jogos do Windows.

Escolher uma linguagem de programação para o aplicativo

If your app communicates with a driver, you can use Windows.Devices.Custom, which is part of the WinRT API, and therefore available in JavaScript, C#, and C++.

Se o 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 do .NET (PInvoke). Para obter mais informações, consulte Chamar Funções Nativas de Código Gerenciado e Programação .NET com C++/CLI.

Entre em contato com o proprietário do recurso personalizado

Agora você está pronto para solicitar acesso a um recurso personalizado de um proprietário do recurso. Você precisa coletar as seguintes informações:

  • PFN do aplicativo (Nome da Família de Pacotes) da Microsoft Store
  • Nome do recurso personalizado
  • Hash de Assinatura do certificado de assinatura do aplicativo que pode ser gerado a partir 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 deverá ter a seguinte aparência:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

O proprietário do recurso usa essas informações para gerar um arquivo Descritor de recurso personalizado 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 que o proprietário do recurso aprove a solicitação. For example, use the following entries in the SCCD on a desktop PC in Developer Mode:

  • Entrada de catálogo no SCCD.

    <Catalog>FFFF</Catalog>
    
  • Hash de Assinatura de Certificado na entrada da entidade autorizada no SCCD. Embora não seja imposta ou validada, 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 (Package.appxmanifest) para incluir um atributo de recursos.

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

Adding an SCCD file into the appx package.Adicionando um arquivo SCCD ao pacote appx.

Mark the SCCD as build content by right clicking on the SCCD file and changing Content to True. Para um projeto C#, use a propriedade Build Action = Content, e para um projeto JavaScript, use Package Action = Content.

Marking SCCD as content.Marcando SCCD como conteúdo.

Finally, right-click the project, select Store, then Create App Packages.

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

Instalar o Aplicativo

Para preinstalar um aplicativo UWP com capacidades personalizadas, use DISM – Serviço e Gerenciamento de Imagem de Implantação.

Troubleshooting

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

  1. Remova a entrada de funcionalidade personalizada do manifesto do AppX.
  2. Compile seu app e o implante.
  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. Recrie e implante.