Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird die Architektur der USB-Geräteemulation (UDE) beschrieben, die das Verhalten eines USB-Hostcontrollers und eines verbundenen Geräts emuliert. Mithilfe von UDE kann eine Nicht-USB-Hardware mit den oberen Ebenen kommunizieren, indem die USB-hostseitigen Treiber in Windows verwendet werden.
UDE-Treiber
In der obigen Abbildung:
- Der USB-Hubtreiber (Usbhub3.sys) ist ein Kernelmodus-Treiberframework (KMDF). Der Hub-Treiber ist für die Verwaltung von USB-Hubs und deren Ports, die Enumeration und die Erstellung physischer Geräteobjekte (PDOs) von USB-Geräten und anderen Hubs verantwortlich, die möglicherweise an ihre Downstream-Ports angeschlossen sind.
- Die USB-Hostcontrollererweiterung (Ucx01000.sys) ist eine Abstraktionsebene für den Hubtreiber im Stapel und bietet einen allgemeinen Mechanismus zum Einreihen von Anforderungen in die Warteschlange an den zugrunde liegenden Host-Controller-Treiber.
- Die UDE-Klassenerweiterung (UdeCx) ruft den UDE-Client-Treiber über vom Client implementierte Rückruffunktionen auf. Die Klassenerweiterung stellt Routinen für Clienttreiber bereit, um UDE-Objekte zu erstellen und zu verwalten.
- Der UDE-Clienttreiber verwaltet die Hardware und interagiert sowohl mit dem Windows-Treiberframework (WDF) als auch mit UDE-APIs. Der obere Edge kommuniziert mit der Erweiterung der WDF- und der UDE-Klasse mithilfe von USB-Konstrukten. Der untere Edge 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 für den UDE-Clienttreiber geladenen Gerätestapel: