Primeros pasos para el desarrollo de controladores de cliente USB
En esta sección se presentan los conceptos y herramientas de desarrollo de controladores USB. La sección se aplica a los desarrolladores nuevos en el desarrollo de controladores que desean implementar un controlador para un dispositivo USB para el que Microsoft no proporciona un controlador integrado. Estos controladores se denominan controlador de cliente USB en esta documentación. En los temas de esta sección se describen los conceptos generales de USB y se proporcionan instrucciones paso a paso sobre cómo realizar tareas comunes de un controlador de cliente USB. Para obtener información detallada sobre esos conceptos, consulte Especificaciones USB en Documentos de USB.
Los desarrolladores de controladores deben tener experiencia de codificación en el lenguaje de programación de C++ y comprender los conceptos de punteros de función, funciones de devolución de llamada y controladores de eventos. Si escribe un controlador basado en el marco de controlador modo de usuario, el desarrollador debe estar familiarizado con C++ y COM.
Ruta de aprendizaje para desarrolladores de controladores de cliente USB
Consulte la Especificación de USB 3.2.
- Obtenga información sobre la especificación del sector y los distintos componentes (dispositivo, controlador de host y concentrador) de la arquitectura. Es importante comprender el modelo de flujo de datos, cómo se comunican el host y el dispositivo entre sí y el formato de las solicitudes que espera el dispositivo.
Obtenga un dispositivo USB de prueba.
Obtenga un dispositivo USB y su especificación de hardware. La especificación describe las funcionalidades del dispositivo y los comandos de proveedor admitidos. Use la especificación para determinar la funcionalidad del controlador de dispositivo y las decisiones de diseño relacionadas.
Hágase con el kit de aprendizaje USB FX2 de OSR si no está familiarizado con el desarrollo de controladores USB. El kit es el más adecuado para estudiar muestras USB incluidas en este conjunto de documentación.
Consiga un dispositivo de la herramienta de prueba USB de Microsoft (MUTT). El hardware MUTT se puede comprar en JJG Technologies. El dispositivo no tiene instalado el firmware instalado. Para instalar el firmware, descargue el paquete de software MUTT. Para obtener más información, consulte la documentación que se incluye con el paquete.
Estudie el diseño del dispositivo USB y los descriptores USB relacionados.
- Describa las funcionalidades del dispositivo leyendo el descriptor de configuración, los descriptores de interfaz para cada configuración alternativa admitida y sus descriptores de punto de conexión. Mediante USBView, el desarrollador puede examinar todos los controladores USB y los dispositivos USB conectados a ellos e inspeccionar también la configuración del dispositivo.
Elección de un modelo de controlador para desarrollar un controlador de cliente USB
- Determine si el controlador debe ser un controlador personalizado o use uno de los controladores proporcionados por Microsoft en función del diseño del dispositivo de destino. Elija el mejor modelo de controlador y describa las características compatibles con cada modelo.
Revise los conceptos de desarrollo de controladores y pila de controladores USB proporcionados por Microsoft.
- Controladores del lado host USB en Windows.
- Conceptos para todos los desarrolladores de controladores.
- Conceptos para todos los desarrolladores de USB.
- Nodos de dispositivo y pilas de dispositivos.
- Developing Drivers with Windows Driver Foundation, de Penny Orwick y Guy Smith. Para obtener más información, consulte Desarrollo de controladores con WDF.
- Ejemplos de controlador USB.
- Comprenda los aspectos básicos de cómo funcionan los controladores en los sistemas operativos Windows. Conocer los aspectos básicos ayudará a tomar decisiones de diseño adecuadas y a simplificar el proceso de desarrollo.
- Diferencie entre los modelos de arquitectura del controlador en modo de usuario y en modo kernel.
- Comprenda la carga de controladores y cómo Windows organiza los dispositivos Plug and Play (PnP) en un árbol de dispositivos y nodos de dispositivo. El desarrollador también debe comprender cómo el administrador de PnP compila pilas de dispositivos y dónde se colocan el controlador y sus objetos de dispositivo en la pila de dispositivos.
Prepare el entorno de desarrollo y depuración.
- Instale el kit para controladores de Windows (WDK) más reciente.
- Instalación de Microsoft Visual Studio.
- Prepararse para la depuración.
- Asegúrese de que los encabezados y las bibliotecas requeridos por un controlador de cliente USB están disponibles.
- Si va a escribir una depuración de controladores en modo kernel en equipos host y de destino a través de una red Ethernet, se debe configurar un cable USB 2.0 o 3.0, o un cable de módem nulo.
- Si va a escribir un controlador en modo de usuario, hay depuradores en modo de usuario disponibles en el entorno de Microsoft Visual Studio. El desarrollador debe estar familiarizado con cómo asociarse a un proceso o iniciar un proceso en el depurador.
Escriba su primer controlador.
- Cómo escribir su primer controlador de cliente USB (KMDF).
- Cómo escribir su primer controlador de cliente USB (UMDF).
- Escriba, compile e instale el primer controlador de cliente USB mediante las plantillas USB incluidas con Visual Studio 2012. El desarrollador debe poder describir los objetos de controlador, dispositivo y cola del marco y comprender cómo se comunica el marco con el controlador.
Amplíe el controlador mediante el envío de una solicitud de transferencia de control USB.
- Envíe solicitudes de control estándar y comandos de proveedor al dispositivo. Para obtener más información, consulte Cómo enviar una transferencia de control USB.
Amplíe el controlador para usar objetos de destino de E/S USB de WDF para realizar transferencias de datos USB.
- Amplíe el controlador para realizar tareas comunes como se describe en Tareas comunes para controladores de cliente USB.
Recursos de la comunidad para USB
Blog del equipo principal de USB de Microsoft Windows
Consulte las publicaciones escritas por el equipo de USB de Microsoft. El blog se centra en la pila de controladores USB de Windows que funciona con varios controladores de host USB y concentradores USB que se encuentran en equipos Windows. Un recurso útil para que desarrolladores de controladores de cliente USB y diseñadores de hardware USB comprendan la implementación de la pila de controladores, resuelvan problemas comunes y expliquen cómo usar herramientas para recopilar seguimientos y archivos de registro.
-
Lista de discusión administrada por OSR Online para desarrolladores de controladores en modo kernel.
Centro de desarrollo de Windows para el desarrollo de hardware
Kit para controladores de Windows, asegúrese de que el producto sea confiable y compatible con Windows a través del Kit de laboratorio de hardware de Windows, obtenga información sobre ejemplos de controladores de Windows.