Architecture : Émulation de périphérique USB (UDE)

La section décrit l’architecture de l’émulation de périphérique USB (UDE) qui émule le comportement d’un contrôleur hôte USB et d’un appareil connecté. En utilisant l’UDE, un matériel non USB peut communiquer avec les couches supérieures à l’aide des pilotes USB côté hôte dans Windows.

Pilotes UDE

émulation de périphérique usb (ude).

Dans l’image précédente,

  • Le pilote de hub USB (Usbhub3.sys) est un pilote KMDF. Le pilote de hub est responsable de la gestion des hubs USB et de leurs ports, de l’énumération et de la création d’objets de périphérique physique (PPO) de périphériques USB et d’autres hubs qui peuvent être attachés à leurs ports en aval.
  • L’extension de contrôleur hôte USB (Ucx01000.sys) est une couche d’abstraction du pilote de hub ci-dessus dans la pile et fournit un mécanisme générique pour la mise en file d’attente des demandes au pilote de contrôleur hôte sous-jacent.
  • L’extension de classe UDE (UdeCx) appelle le pilote client UDE via des fonctions de rappel implémentées par le client. L’extension de classe fournit des routines permettant au pilote client de créer des objets UDE et de les gérer.
  • Le pilote client UDE gère le matériel, en interagissant avec les API WDF et UDE. Le bord supérieur communique avec l’extension de classe WDF et UDE à l’aide de constructions USB. Son bord inférieur communique avec le matériel à l’aide de l’interface du matériel.
  • Matériel personnalisé : par exemple, un matériel PCI peut être émulé pour fonctionner en tant que périphérique USB.

Nœuds d’appareil UDE

Voici les piles de périphériques chargées pour le pilote client UDE :

nœuds d’appareil d’émulation de périphérique usb( ude).