Aplicación para compatibilidad con 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 para compatibilidad con hardware (HSA). Puedes distribuir y actualizar una aplicación para compatibilidad con 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, use el Puente de dispositivo de escritorio para crear un paquete de aplicaciones de Windows que pueda cargar en la Tienda.
En esta página se describe el procedimiento de 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 para compatibilidad con 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 crear una aplicación para UWP con una funcionalidad personalizada, necesitará el SDK de Windows versión 10.0.15063 (Actualización de Windows 10 para creadores) o posterior. El archivo del proyecto también debe especificar la versión 10.0.15063 o posterior. Para obtener más ayuda para la configuración, consulte Desarrollo de aplicaciones para UWP con Visual Studio.
A partir de la versión 1709 de Windows 10, puede 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, consulte Emparejamiento de un controlador con una aplicación para UWP.
Creación de 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 partner de hardware. Necesitará el nombre del publicador al crear el manifiesto de aplicación y los metadatos del dispositivo en pasos posteriores. También puede reservar un nombre para la aplicación una vez que haya creado un perfil de tienda.
Para crear una cuenta de Microsoft Store, vaya a Registrarse. Para obtener más información, consulte Publicación de aplicaciones y juegos de Windows.
Elección de un lenguaje de programación para la aplicación
Si la aplicación se va a 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 va a comunicar con un servicio NT, deberá usar las API de RPC. Dado que las API de 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.
Contacto con el propietario de la funcionalidad personalizada
Ahora está listo para solicitar acceso a una funcionalidad personalizada al propietario de la funcionalidad. Tendrá que recopilar reunir 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 la aplicación que se puede generar a partir del archivo de .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 hacia la parte inferior y asegúrese de que es SHA256. De lo contrario, use un certificado SHA256 para firmar la aplicación. El resultado debería tener el siguiente aspecto:
Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4
El propietario de la funcionalidad usa esta información para generar un archivo de descriptor de funcionalidad personalizada firmado que envía al desarrollador de la aplicación.
El desarrollador de la aplicación 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 el 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 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 "proyecto-> Agregar - >Elemento existente..." para agregar el SCCD al proyecto.
Marque el SCCD como contenido de compilación haciendo clic con el botón derecho en el archivo SCCD y cambiando Content a True. Para un proyecto de C#, use la propiedad Build Action = Content
y para un proyecto de JavaScript, use Package Action = Content
.
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, use DISM - Administración y mantenimiento de imágenes de implementación.
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:
Quite la entrada de funcionalidad personalizada del manifiesto de AppX.
Compile e implemente la aplicación.
En una ventana de PowerShell, escriba
Get-AppxPackage
.Busque la aplicación en la lista y compruebe el nombre exacto de la familia de paquetes de la aplicación.
Actualice el SCCD con el nombre de familia del paquete.
Vuelva a agregar la entrada de funcionalidad personalizada al manifiesto de AppX.
Vuelve a compilar e implemente.
Consulte también
Aplicación para compatibilidad con hardware (HSA): Pasos para desarrolladores de controladores
Habilitar el dispositivo para el desarrollo
Ejemplo de funcionalidad personalizada
Introducción al desarrollo de controladores de Windows
Emparejamiento de un controlador con una aplicación de Plataforma universal de Windows (UWP)