En este artículo se proporcionan instrucciones para decidir si debe escribir una aplicación para UWP o una aplicación de escritorio de Windows para comunicarse con un dispositivo USB.
Windows proporciona conjuntos de API que puede usar para escribir aplicaciones que se comuniquen con dispositivos USB personalizados. La API realiza tareas comunes relacionadas con USB, como buscar el dispositivo, transferencias de datos.
El dispositivo personalizado en este contexto significa que un dispositivo para el que Microsoft no proporciona un controlador de clase integrada. En su lugar, puede instalar WinUSB (Winusb.sys) como controlador de dispositivo.
Elección de un modelo de programación
Si instala Winusb.sys, estas son las opciones del modelo de programación:
Antes de Windows 8.1, las aplicaciones que se comunicaban a través de Winusb.sys, eran aplicaciones de escritorio escritas mediante funciones de WinUSB. En Windows 8.1, se extendió el conjunto de API. Para obtener más información sobre el desarrollo de aplicaciones de Windows, consulte Desarrollo para Windows.
La estrategia para elegir el mejor modelo de programación depende de varios factores.
¿La aplicación se comunicará con un dispositivo USB interno?
Las API están diseñadas principalmente para acceder a dispositivos periféricos. La API también puede acceder a dispositivos USB internos de PC. Sin embargo, el acceso a dispositivos USB internos de PC desde una aplicación para UWP se limita a una aplicación con privilegios declarada explícitamente en los metadatos del dispositivo por el OEM para ese equipo.
¿La aplicación se comunicará con puntos de conexión isócronos USB?
Si la aplicación transmite datos a o desde puntos de conexión isócronos del dispositivo, debe escribir una aplicación de escritorio de Windows. En Windows 8.1, se han agregado nuevas funciones de WinUSB al conjunto de API que permite que una aplicación de escritorio envíe datos y reciba datos de puntos de conexión isócronos.
¿La aplicación es un tipo de aplicación "panel de control"?
Las aplicaciones para UWP son aplicaciones por usuario y no tienen la capacidad de realizar cambios fuera del ámbito de cada aplicación. Para estos tipos de aplicaciones, debes escribir una aplicación de escritorio de Windows.
¿Las aplicaciones para UWP admiten clases de clase de dispositivo USB?
Escriba una aplicación para UWP si el dispositivo pertenece a una de estas clases de dispositivo.
name:cdcControl, classId:02 * *
name:physical, classId:05 * *
name:personalHealthcare, classId:0f 00 00
name:activeSync, classId:ef 01 01
name:palmSync, classId:ef 01 02
name:deviceFirmwareUpdate, classId:fe 01 01
name:irda, classId:fe 02 00
name:measurement, classId:fe 03 *
name:vendorSpecific, classId:ff * *
Nota
Si el dispositivo pertenece a la clase DeviceFirmwareUpdate, la aplicación debe ser una aplicación con privilegios.
Si el dispositivo no pertenece a una de las clases de dispositivo anteriores, escriba una aplicación de escritorio de Windows.
Requisito del controlador
Requisito del controlador
Aplicación para UWP
Aplicación de escritorio de Windows
Controlador de función
Winusb.sys proporcionados por Microsoft (controlador en modo kernel).
Winusb.sys proporcionados por Microsoft (controlador en modo kernel).
Controlador de filtro
Si los controladores de filtro están presentes, el acceso se limita a las aplicaciones con privilegios. El OEM declara la aplicación como aplicaciones con privilegios en los metadatos del dispositivo.
El controlador de filtro puede estar presente en la pila de dispositivos en modo kernel, siempre y cuando no bloquee el acceso aWinusb.sys.
Los desarrolladores de Windows tienen varias opciones para crear aplicaciones que se ejecutan en Windows. En este módulo se presentan los marcos de interfaz de usuario de Windows que están disponibles para el desarrollo de Windows. También proporciona instrucciones sobre cómo elegir el mejor marco para la aplicación.
A partir de Windows 8.1, el conjunto de funciones winUSB tiene API que permiten a una aplicación de escritorio transferir datos hacia y desde puntos de conexión isócronos de un dispositivo USB. Para esta aplicación, el Winusb.sys proporcionado por Microsoft debe ser el controlador del dispositivo.
La manera más fácil de escribir una aplicación de escritorio de Windows que se comunica con un dispositivo USB es mediante la plantilla WinUSB de C/C++.