Compartir a través de


Arquitectura: extensión del controlador de host USB (UCX)

En esta sección se presentan los conceptos y las tareas de alto nivel para el desarrollo de controladores host. La sección se aplica a usted si está escribiendo un nuevo controlador de controlador de host que se comunica con el controlador de extensión del controlador de host USB proporcionado por Microsoft (Ucx01000.sys).

Esta es una versión modificada de un diagrama que se muestra en controladores del lado host USB en Windows. Esta versión oculta los detalles de la capa de controladores de cliente USB, que no son relevantes para el desarrollo de controladores de controlador de host.

arquitectura ucx.

En la imagen anterior,

  • El controlador de concentrador USB (Usbhub3.sys) es un controlador KMDF. El controlador de concentrador es responsable de administrar los concentradores USB y sus puertos, enumeración y creación de objetos de dispositivo físico (PPO) de dispositivos USB y otros concentradores que se pueden conectar a sus puertos de bajada.
  • La extensión del controlador de host USB (Ucx01000.sys) es una capa de abstracción para el controlador de concentrador anterior en la pila y proporciona un mecanismo genérico para poner en cola las solicitudes al controlador del controlador de host subyacente.
  • El controlador del controlador de host USB administra el hardware. Usbxhci.sys es un controlador de este tipo proporcionado por Microsoft, que tiene como destino hardware de controlador USB compatible con la especificación xHCI, en particular. Puede ser necesario que los desarrolladores de hardware independientes escriban su propio controlador de controlador de host, en lugar de usar la bandeja de entrada Usbxhci.sys. Por ejemplo, para un hardware XHCI que no es totalmente compatible con la especificación y, por lo tanto, no puede usar Usbxhci.sys o para hardware que no sea XHCI, como USB a través de la conexión TCP.

La comunicación bidireccional que tiene lugar entre UCX y el controlador del controlador de host tiene lugar mediante interfaces de programación de extensión del controlador de host USB (UCX). Cada controlador se vincula estáticamente a los puntos de entrada de la biblioteca de código auxiliar proporcionado por Microsoft (Ucx01000.lib) cuando se compila el controlador.

Estas son las pilas de dispositivos cargadas para el controlador del controlador de host:

pila de dispositivos ucx.