Share via


Architektur: USB-Geräteemulation (UDE)

Im Abschnitt wird die Architektur der USB-Geräteemulation (UDE) beschrieben, die das Verhalten eines USB-Hostcontrollers und eines verbundenen Geräts emuliert. Mithilfe der UDE kann eine Hardware ohne USB mit den oberen Schichten kommunizieren, indem sie die hostseitigen USB-Treiber in Windows verwendet.

UDE-Treiber

USB-Geräteemulation (ude).

In der obigen Abbildung

  • DER USB-Hubtreiber (Usbhub3.sys) ist ein KMDF-Treiber. Der Hubtreiber ist für die Verwaltung von USB-Hubs und deren Ports, Die Enumeration und das Erstellen physischer Geräteobjekte (PDOs) von USB-Geräten und anderen Hubs verantwortlich, die möglicherweise an ihre Downstreamports angeschlossen werden.
  • DIE USB-Hostcontrollererweiterung (Ucx01000.sys) ist eine Abstraktionsebene für den Hubtreiber oben im Stapel und bietet einen generischen Mechanismus zum Anstehen von Anforderungen an den zugrunde liegenden Hostcontrollertreiber.
  • Die UDE-Klassenerweiterung (UdeCx) wird über vom Client implementierte Rückruffunktionen in den UDE-Clienttreiber aufgerufen. Die Klassenerweiterung bietet Routinen für clienttreiber zum Erstellen und Verwalten von UDE-Objekten.
  • Der UDE-Clienttreiber verwaltet die Hardware und interagiert mit den WDF- und UDE-APIs. Der obere Rand kommuniziert sowohl mit der WDF- als auch mit der UDE-Klassenerweiterung über USB-Konstrukte. Der untere Rand kommuniziert mit der Hardware über die Hardwareschnittstelle.
  • Benutzerdefinierte Hardware: Beispielsweise kann eine PCI-Hardware emuliert werden, um als USB-Gerät zu funktionieren.

UDE-Geräteknoten

Hier sind die Gerätestapel, die für den UDE-Clienttreiber geladen werden:

USB-Geräteemulation (ude) Geräteknoten.