Aplicación de soporte técnico de hardware (HSA): pasos para desarrolladores de aplicaciones

En este tema se describe cómo asociar una aplicación específica del dispositivo con un controlador o un punto de conexión RPC (llamada a procedimiento remoto). Cuando se emparejan de esta manera, la aplicación se conoce como aplicación de soporte técnico de hardware (HSA). Puedes distribuir y actualizar una aplicación de soporte técnico de hardware a través de Microsoft Store.

Comience con una aplicación de Plataforma universal de Windows (UWP) o una aplicación de escritorio (Win32). Si quieres usar una aplicación de escritorio, usa la Puente de dispositivo de escritorio para crear un paquete de aplicación de Windows que puedas cargar en la Tienda.

En esta página se describe el procedimiento para una aplicación para UWP, pero los pasos son similares para la opción Win32.

Los pasos para el desarrollador de controladores se describen en Aplicación de soporte técnico de hardware (HSA): Pasos para desarrolladores de controladores.

Introducción

En primer lugar, instale la versión más reciente de Visual Studio y cree un proyecto de aplicación para UWP. Para compilar una aplicación para UWP con una funcionalidad personalizada, necesitará windows SDK versión 10.0.15063 (Windows 10 Creators Update) o posterior. El archivo del proyecto también debe especificar la versión 10.0.15063 o posterior. Para obtener más ayuda para configurarse, consulta Desarrollar aplicaciones para UWP con Visual Studio.

A partir de Windows 10 versión 1709, puedes especificar que una aplicación de Plataforma universal de Windows (UWP) solo se debe cargar si existe un controlador específico. Para obtener información sobre cómo hacerlo, consulta Emparejar un controlador con una aplicación para UWP.

Crear una cuenta de Microsoft Store

Se requiere una cuenta de desarrollador en Microsoft Store. Los partners de hardware necesitarán una cuenta de Microsoft Store diferente de su cuenta de asociado de hardware. Necesitará el nombre del publicador al crear el manifiesto de la aplicación y los metadatos del dispositivo en pasos posteriores. También puedes reservar un nombre para tu aplicación una vez que hayas creado un perfil de la tienda.

Para crear una cuenta de Microsoft Store, ve a Obtener registrado. Para obtener más información, consulta Publicar aplicaciones y juegos de Windows.

Elección de un lenguaje de programación para la aplicación

Si la aplicación se comunicará con un controlador, puedes usar Windows.Devices.Custom, que forma parte de la API de WinRT y, por tanto, está disponible en JavaScript, C# y C++.

Si la aplicación se comunicará con un servicio NT, deberá usar las API rpc. Dado que las API rpc son API de Win32 que no están disponibles en WinRT, debes usar C++, C++/CLI o encapsular las llamadas RPC mediante la interoperabilidad de .NET (PInvoke). Para obtener más información, consulte Llamada a funciones nativas desde código administrado y programación de .NET con C++/CLI.

Póngase en contacto con el propietario de la funcionalidad personalizada

Ahora está listo para solicitar acceso a una funcionalidad personalizada desde un propietario de la funcionalidad. Deberá recopilar la siguiente información:

  • PFN de la aplicación (nombre de familia de paquete) de Microsoft Store

  • Nombre de la funcionalidad personalizada

  • Hash de firma del certificado de firma de aplicación que se puede generar a partir del archivo .cer mediante certutil.exe. El certificado debe ser SHA-256.

Para generar el hash de firma, ejecute C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Busque el hash de firma cerca de la parte inferior y asegúrese de que es SHA256. De lo contrario, usa un certificado SHA256 para firmar la aplicación. El resultado debe tener este aspecto:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

El propietario de la funcionalidad usa esta información para generar un archivo descriptor de funcionalidad personalizada firmado y envía este archivo al desarrollador de la aplicación.

El desarrollador de aplicaciones puede seguir desarrollando una aplicación con funcionalidades personalizadas en modo de desarrollador mientras espera a que el propietario de la funcionalidad apruebe la solicitud. Por ejemplo, use lo siguiente en SCCD en un equipo de escritorio en modo de desarrollador:

  • Entrada de catálogo en el SCCD.

    <Catalog>FFFF</Catalog>
    
  • Hash de firma de certificado en la entrada de entidad autorizada en el SCCD. Aunque no se aplica ni se valida, coloque una secuencia de 64 caracteres.

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

Agregar una funcionalidad personalizada al manifiesto del paquete de aplicación

A continuación, modifique el archivo de origen del manifiesto del paquete de la aplicación (Package.appxmanifest) para incluir un atributo 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>

A continuación, copie el archivo SCCD en la raíz del paquete appx. En el Explorador de soluciones de Visual Studio, haga clic con el botón derecho en "project- Add ->> Existing Item..." para agregar el SCCD al proyecto.

Agregar un archivo SCCD al paquete appx.

Marque el SCCD como contenido de compilación haciendo clic con el botón derecho en el archivo SCCD y cambiando Contenido a True. Para un proyecto de C#, use la propiedad Build Action = Contenty para un proyecto de JavaScript, use Package Action = Content.

Marcar SCCD como contenido.

Por último, haga clic con el botón derecho en el proyecto, seleccione Tienda y, después, Crear paquetes de aplicaciones.

No hay compatibilidad con aplicaciones para UWP con funcionalidades personalizadas en plataformas móviles.

Instalación de la aplicación

Para instalar previamente una aplicación para UWP con funcionalidades personalizadas, usa DISM - Deployment Image Servicing and Management.

Solución de problemas

Cuando la máquina de destino está en modo de desarrollador, puede probar los pasos siguientes para depurar el error de registro de aplicaciones:

  1. Quite la entrada de funcionalidad personalizada del manifiesto de AppX.

  2. Compile la aplicación e impleméntela.

  3. En una ventana de PowerShell, escriba Get-AppxPackage.

  4. Busque la aplicación en la lista y compruebe el nombre exacto de la familia de paquetes de la aplicación.

  5. Actualice el SCCD con el nombre de familia del paquete.

  6. Vuelva a agregar la entrada de funcionalidad personalizada al manifiesto de AppX.

  7. Recompile e implemente.

Vea también

Aplicación de soporte técnico de hardware (HSA): pasos para desarrolladores de controladores

Habilitar el dispositivo para el desarrollo

Ejemplo de funcionalidad personalizada

Introducción con controladores de Windows

Emparejamiento de un controlador con una aplicación de Plataforma universal de Windows (UWP)

Introducción a la Plataforma universal de Windows

Plataforma universal de Windows (UWP)