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 empareja de esta manera, la aplicación se conoce como aplicación de soporte técnico de hardware (HSA). Puede distribuir y actualizar una aplicación de soporte técnico de hardware a través del 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 el 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ás Windows 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 configurarlas, 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 debe cargarse si hay un controlador específico. Para obtener información sobre cómo hacerlo, consulta Emparejar un controlador con una aplicación para UWP.

Creación de una cuenta de Microsoft Store

Se requiere una cuenta de desarrollador en el Microsoft Store. Los asociados 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 tienda.

Para crear una cuenta de Microsoft Store, vaya a la página de registro de aplicaciones para UWP. Para obtener más información, consulta Apertura de una cuenta de desarrollador.

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

Si la aplicación se comunicará con un controlador, puede 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, debe 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 del paquete) del Microsoft Store

  • Nombre de la funcionalidad personalizada

  • Hash de firma del certificado de firma de la 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, use 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 SCCD.

    <Catalog>FFFF</Catalog>
    
  • Hash de firma de certificado en la entrada de entidad autorizada en 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>
    

Adición de 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.

Adding an SCCD file into the appx package.

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.

Marking SCCD as content.

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

Nota

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 : administración y mantenimiento de imágenes de implementación.

Solucionar problemas

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

  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 familia del paquete para 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.

Consulte 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)