Compartilhar via


Arquitetura de emulação do dispositivo USB

Este artigo apresenta a arquitetura da UDE (emulação de dispositivo USB), que emula o funcionamento de um controlador de host USB e um dispositivo conectado. Usando o UDE, um hardware não USB pode se comunicar com as camadas superiores usando os drivers de host USB no Windows.

Drivers UDE

Diagrama da pilha de software UDE.

Na imagem anterior,

  • O driver de hub USB (Usbhub3.sys) é um driver KMDF (estrutura de driver de modo kernel). O driver de hub é responsável por gerenciar hubs USB e suas portas, enumeração e criação de PDOs (objetos de dispositivo físico) de dispositivos USB e outros hubs que podem ser incluídos em suas portas downstream.
  • A extensão do controlador de host USB (Ucx01000.sys) é uma camada de abstração para o driver de hub na pilha e oferece um mecanismo genérico para enfileirar solicitações para o driver do controlador de host subjacente.
  • A extensão de classe UDE (UdeCx) é chamada para o driver cliente UDE por meio de funções de retorno de chamada implementadas pelo cliente. A extensão de classe fornece rotinas para o driver cliente criar objetos UDE e gerenciá-los.
  • O driver cliente UDE gerencia o hardware, interagindo com a estrutura de driver Windows (WDF) e as APIs de UDE. A borda superior se comunica com a extensão de classe WDF e UDE usando constructos USB. Sua borda inferior se comunica com o hardware usando a interface do hardware.
  • Hardware personalizado: por exemplo, um hardware PCI pode ser emulado para funcionar como um dispositivo USB.

Nós de dispositivo UDE

Aqui estão as pilhas de dispositivos carregadas para o driver cliente UDE:

Diagrama de pilhas de dispositivos UDE.