WinUSB es un controlador USB genérico proporcionado por Microsoft para sus sistemas operativos a partir de Windows Vista , aunque también está disponible para Windows XP . Está diseñado para dispositivos sencillos a los que solo accede una aplicación a la vez (por ejemplo, instrumentos como estaciones meteorológicas, dispositivos que solo necesitan una conexión de diagnóstico o para actualizaciones de firmware). Permite que la aplicación acceda directamente al dispositivo mediante una sencilla biblioteca de software . Esta biblioteca proporciona acceso a las conexiones del dispositivo. WinUSB expone una API de cliente que permite a los desarrolladores trabajar con dispositivos USB desde el modo de usuario. A partir de Windows 7 , los dispositivos USB MTP utilizan WinUSB en lugar del controlador de filtro en modo kernel.
Características
WinUSB no requiere conocimientos para escribir un controlador y permite un desarrollo más rápido.
Solo una aplicación puede acceder al dispositivo a la vez. No admite transferencias isócronas anteriores a Windows 8.1 . Tampoco admite el reinicio por USB (como el que solicita el protocolo DFU, por ejemplo).
WCID
Un dispositivo WCID, donde WCID significa "Windows Compatible ID" (Identificador compatible con Windows), es un dispositivo USB que proporciona información adicional a un sistema Windows para facilitar la instalación automática de controladores y, en la mayoría de los casos, permitir el acceso inmediato. WCID permite que una aplicación de Windows utilice un dispositivo casi inmediatamente después de conectarlo, a diferencia de lo habitual, donde un dispositivo USB que no es ni HID ni almacenamiento masivo requiere que el usuario final instale manualmente el controlador. De esta forma, WCID puede brindar la funcionalidad "Plug-and-Play" de HID y almacenamiento masivo a cualquier dispositivo USB (que cuente con un firmware compatible con WCID). WCID es una extensión de la funcionalidad de WinUSB Device. [ 1 ]
Otras soluciones
Una solución consiste en utilizar una clase de dispositivo USB predefinida . Los sistemas operativos proporcionan controladores integrados para algunas de ellas. La clase de dispositivo más utilizada para dispositivos integrados es la clase de dispositivo de comunicaciones USB (CDC). Un dispositivo CDC puede aparecer como un puerto serie virtual para simplificar el uso de un nuevo dispositivo en aplicaciones antiguas.
Otra solución es UsbDk . UsbDk es compatible con todo tipo de dispositivos, incluidos los isócronos, y proporciona una forma más sencilla de obtener acceso a ellos sin necesidad de crear ni instalar archivos INF . UsbDk es de código abierto , cuenta con el apoyo de la comunidad y funciona en todas las versiones de Windows, desde Windows XP.
Si las soluciones anteriores no son adecuadas, se puede escribir un controlador personalizado. Para las versiones más recientes de Microsoft Windows, esto se puede hacer utilizando la Windows Driver Foundation .
Referencias
- ↑ "pbatard/libwdi" . GitHub . Consultado el 14 de mayo de 2020 .
- "Cómo usar WinUSB para comunicarse con un dispositivo USB" . Microsoft. 5 de diciembre de 2007. Archivado del original el 28 de agosto de 2008. Consultado el 9 de julio de 2008 .
- "WinUSB" . Red de desarrolladores de Microsoft . Consultado el 7 de julio de 2010 .
- "Especificación USB 2.0" . USB Implementers Forum, Inc. 15 de marzo de 2007. Consultado el 27 de marzo de 2007 . La versión más reciente se puede encontrar en USB.org.
- A la fecha de esta edición , este artículo utiliza contenido de «WCID Devices» , obra de Pete Batard (pbatard), Patrick Stewart (patstew), Chih-Wei y Manuel Odendahl (wesen), cuya licencia permite su reutilización bajo la Licencia Internacional Creative Commons Atribución-CompartirIgual 4.0 , pero no bajo la GFDL . Deben respetarse todos los términos pertinentes.
- Componentes de Windows