Compartir a través de


Arquitectura y módulos de WinUSB

WinUSB consta de dos componentes principales:

  • Winusb.sys es un controlador en modo kernel que se puede instalar como un filtro o controlador de función, por encima de los controladores de protocolo en la pila de dispositivos en modo kernel de un dispositivo USB.
  • Winusb.dll es un archivo DLL en modo de usuario que expone funciones de WinUSB. Las aplicaciones pueden usar estas funciones para comunicarse con Winusb.sys cuando se instala como controlador de funciones de un dispositivo.

En el caso de los dispositivos que no requieren un controlador de función personalizado, Winusb.sys se pueden instalar en la pila del modo kernel del dispositivo como controlador de función. A continuación, los procesos en modo de usuario pueden comunicarse con Winusb.sys mediante un conjunto de solicitudes de control de E/S de dispositivo o mediante una llamada a funciones de WinUSB.

En la ilustración siguiente se muestra una pila de controladores USB que contiene varias instancias de Winusb.sys.

Controlador winusb y pila de objetos de dispositivo.

En la ilustración anterior se muestra un ejemplo de configuración de WinUSB que implementa tres clases de interfaz de dispositivo, cada una de las cuales tiene una única interfaz de dispositivo registrada:

  • La instancia 1 de Winusb.sys registra la interfaz de dispositivo A, que admite un controlador en modo de usuario (Usboem.dll).
  • La instancia 2 de Winusb.sys registra la interfaz de dispositivo B, que admite un controlador en modo de usuario para un escáner (Usbscan.exe) que se comunica con Winusb.dll mediante un servicio del sistema (SVCHOST).
  • La instancia 3 de Winusb.sys registra la interfaz de dispositivo C, que admite una utilidad de actualización de firmware (Usbfw.exe).

Hay exactamente una instancia cargada de Winusb.sys. Un PDO puede representar un dispositivo no compuesto (por ejemplo, la instancia 1 del diagrama) o puede representar una interfaz o una colección de interfaz en un dispositivo compuesto (por ejemplo, instancias 2 y 3). En el caso de los dispositivos de clase de dispositivo de comunicación móvil (WMCDC) USB, un PDO puede incluso representar varias colecciones de interfaz. (Para obtener más información sobre los PPO para dispositivos WMCDC, consulte Compatibilidad con la clase de dispositivo de comunicación móvil inalámbrica).

Cualquier aplicación en modo de usuario puede comunicarse con la pila USB cargando la biblioteca de vínculos dinámicos de WinUSB (Winusb.dll) y llamando a las funciones de WinUSB expuestas por este módulo.

Instalación de WinUSB (winusb.sys)
Cómo acceder a un dispositivo USB mediante funciones winUSB
Funciones de WinUSB para la modificación de la directiva de canalización
Administración de energía de WinUSB
Funciones de WinUSB
WinUSB