Universal Serial Bus (USB)

Universal Serial Bus (USB) bietet eine erweiterbare Plug & Play serielle Schnittstelle, die eine kostengünstige Standardverbindung für Peripheriegeräte gewährleistet. USB-Geräte umfassen Tastaturen, Mäuse, Joysticks, Drucker, Scanner, Speichergeräte, Modems, Videokonferenzkameras und vieles mehr.

Der USB-IF ist eine Special Interest Groups (SIGs), die die offizielle USB-Spezifikation, Testspezifikationen und Tools verwaltet.

Windows-Betriebssysteme umfassen native Unterstützung für USB-Hostcontroller, Hubs sowie Geräte und Systeme, die der offiziellen USB-Spezifikation entsprechen. Windows bietet auch Programmierschnittstellen, mit denen Sie Gerätetreiber und Anwendungen entwickeln können, die mit einem USB-Gerät kommunizieren.

USB für Gerätehersteller SymbolUSB für Treiberentwickler SymbolUSB für App-Entwickler SymbolUSB HCK-Zertifizierungssymbol

USB unter Windows

Entwicklungstools

USB-Beispiele

Erstellen eines USB-Treibers oder einer USB-App für Windows

Hier erfahren Sie mehr über die Entwicklung von USB-Treibern. Enthält Informationen zur Auswahl des am besten geeigneten Modells für die Bereitstellung eines USB-Treibers für Ihr Gerät.

Schreiben eines USB-Clienttreibers (KMDF, UMDF)

Dieser Abschnitt enthält Tutorials zum Schreiben Ihrer ersten USB-Treiber im Benutzermodus und Kernelmodus mithilfe der in Microsoft Visual Studio enthaltenen USB-Vorlagen.

Schreiben eines USB-Hostcontrollertreibers

Wenn Sie einen xHCI-Hostcontroller entwickeln, der nicht mit der Spezifikation konform ist, oder eine benutzerdefinierte Nicht-xHCI-Hardware (z. B. einen virtuellen Hostcontroller) entwickeln, können Sie einen Hostcontrollertreiber schreiben, der mit UCX kommuniziert. Betrachten Sie beispielsweise ein drahtloses Dock, das USB-Geräte unterstützt. Der PC kommuniziert mit USB-Geräten über das wireless Dock, indem er USB über TCP als Transport verwendet.

Schreiben eines Funktionscontrollertreibers für ein USB-Gerät

Sie können einen Controllertreiber entwickeln, der alle USB-Datenübertragungen und -Befehle verarbeitet, die vom Host an das Gerät gesendet werden. Dieser Treiber kommuniziert mit der von Microsoft bereitgestellten USB-Funktionscontrollererweiterung (UFX).

Entwickeln von Windows-Treibern für USB-Funktionscontroller

Referenz zur USB-Funktionsklassenerweiterung (UFX)

Schreiben eines USB-Typ-C-Connectortreibers

Windows 10 wird die Unterstützung für den neuen USB-Anschluss eingeführt: USB Type-C. Sie können einen Treiber für den Connector schreiben, der mit dem von Microsoft bereitgestellten Klassenerweiterungsmodul UcmCx kommuniziert, um Szenarien im Zusammenhang mit Typ-C-Connectors zu verarbeiten, z. B. welche Ports Typ-C unterstützen, welche Ports die Energiebereitstellung unterstützen.

Entwickeln von Windows-Treibern für USB-Typ-C-Anschlüsse

Referenz zur USB-Connector-Manager-Klassenerweiterung (UcmCx)

Schreiben eines USB-Controllertreibers mit dualer Rolle

USB Dual Role Controller werden jetzt in Windows 10 unterstützt. Windows enthält im Lieferumfang enthaltene Clienttreiber für ChipIdea- und Synopsis-Controller. Für andere Controller stellt Microsoft eine Reihe von Programmierschnittstellen bereit, die es der Dual-Role-Klassenerweiterung (UrsCx) und dem zugehörigen Clienttreiber ermöglichen, miteinander zu kommunizieren, um die Rollenwechselfunktion eines Controllers mit zwei Rollen zu verarbeiten.

Weitere Informationen zu diesem Feature finden Sie unter:

USB-Treiberstapelarchitektur mit dualer Rolle

Programmierreferenz für USB-Controllertreiber mit dualer Rolle

Schreiben eines USB-Treibers für emulierte Geräte

Sie können einen emulierten USB-Hostcontrollertreiber (Universal Serial Bus) und ein angeschlossenes virtuelles USB-Gerät entwickeln. Beide Komponenten werden in einem einzelnen KMDF-Treiber kombiniert, der mit der von Microsoft bereitgestellten USB-Geräteemulationsklassenerweiterung (UdeCx) kommuniziert.

Entwickeln von Windows-Treibern für emulierte USB-Geräte (UDE)

Referenz zur Programmierung des emulierten USB-Hostcontrollertreibers

WDF-Erweiterung für die Entwicklung von USB-Treibern

Schreiben einer UWP-App

  • Sprechen Sie mit USB-Geräten von Anfang bis Ende: Enthält schritt-für-Schritt-Anweisungen zum Implementieren von USB-Features in einer UWP-App. Zum Schreiben einer solchen App für ein USB-Gerät benötigen Sie Visual Studio und das Microsoft Windows Software Development Kit (SDK).

  • Windows.Devices.Usb: UWP-Namespace-Programmierreferenz.

Schreiben einer Windows-Desktop-App

  • Schreiben einer WinUSB-Anwendung: Beschreibt, wie eine Anwendung WinUSB Functions aufrufen kann, um mit einem USB-Gerät zu kommunizieren.

  • WinUSB-Funktionen

  • Häufige Programmierszenarien: Liste der allgemeinen Aufgaben, die ein Treiber oder eine App ausführt, um mit einem USB-Gerät zu kommunizieren. Hier erhalten Sie schnelle Informationen zu den Programmierschnittstellen, die Sie für jede Aufgabe benötigen.

Testen von USB-Geräten mit Windows

Übersicht über Microsoft USB Test Tool (MUTT)-Geräte

Rufen Sie Informationen zu den Tools ab, mit denen Sie Ihre USB-Hardware oder -Software testen, Ablaufverfolgungen von Vorgängen und anderen Systemereignissen erfassen und beobachten, wie der USB-Treiberstapel auf eine Anforderung reagiert, die von einem Clienttreiber oder einer Anwendung gesendet wird.

Lesen Sie eine Übersicht über Tests im Hardwarezertifizierungskit, mit denen Hardwarehersteller und Gerätehersteller ihre USB-Geräte und Hostcontroller für die Übermittlung der Windows-Hardwarezertifizierung vorbereiten können.

Universal Serial Bus 4 (USB4™)

Andere Ressourcen für USB

  • Offizielle USB-Spezifikation: Bietet vollständige technische Details für das USB-Protokoll.

  • Microsoft Windows USB Core Team Blog: Lesen Sie beiträge, die vom Microsoft USB-Team geschrieben wurden. Der Blog konzentriert sich auf den Windows-USB-Treiberstapel, der mit verschiedenen USB-Hostcontrollern und USB-Hubs funktioniert, die auf Windows-PCs gefunden werden. Eine nützliche Ressource für ENTWICKLER von USB-Clienttreibern und USB-Hardwareentwicklern, um die Treiberstapelimplementierung zu verstehen, häufige Probleme zu beheben und zu erläutern, wie Tools zum Sammeln von Ablaufverfolgungen und Protokolldateien verwendet werden.

  • OSR Online-Listen – ntdev: Diskussionsliste, die von OSR Online für Kernelmodustreiberentwickler verwaltet wird.

  • Windows Hardware Dev Center: Verschiedene Ressourcen basierend auf häufig gestellten Fragen von Entwicklern, die noch nicht mit der Entwicklung von USB-Geräten und Treibern vertraut sind, die mit Windows-Betriebssystemen funktionieren.

USB-Hardware zum Lernen

  • MUTT-Geräte: MUTT- und SuperMUTT-Geräte sowie das zugehörige Softwarepaket sind in die HCK-Suite von USB-Tests integriert. Sie bieten automatisierte Tests, die während des Entwicklungszyklus von USB-Controllern, -Geräten und -Systemen, insbesondere Belastungstests, verwendet werden können.

  • OSR USB FX2 Learning Kit: Wenn Sie noch nicht mit der Entwicklung von USB-Treibern vertraut sind. Das Kit eignet sich am besten zum Untersuchen von USB-Beispielen, die in diesem Dokumentationssatz enthalten sind. Sie erhalten das Lernkit im OSR Online Store.

Erfahren Sie mehr über von Microsoft bereitgestellte USB-Treiber.

  • USB-geräteseitige Treiber in Windows: Beschreibt die Architektur des USB-Funktionsstapels.

  • Hostseitige USB-Treiber in Windows: Bietet eine Übersicht über die Usb-Treiberstapelarchitektur (Universal Serial Bus). Microsoft bietet einen Kernstapel von Treibern, die mit Geräten zusammenarbeiten, die mit EHCI- und xHCI-Controllern verbunden sind.

  • USB-IF-Geräteklassentreiber: Listet die von Microsoft bereitgestellten Treiber für die unterstützten USB-Geräteklassen auf. Windows bietet im Lieferumfang enthaltene Geräteklassentreiber für viele USB-IF-genehmigte Geräteklassen, Audio, Massenspeicher usw.

  • Generischer USB-Funktionstreiber – WinUSB: WinUSB ist ein generischer Treiber für USB-Geräte, der in allen Versionen von Windows seit Windows Vista enthalten ist. Windows bietet Winusb.sys, die als Funktionstreiber für ein benutzerdefiniertes Gerät und eine Funktion eines zusammengesetzten Geräts geladen werden können.

  • Generischer übergeordneter USB-Treiber für zusammengesetzte Geräte – Usbccgp: Übergeordneter Treiber für USB-Geräte mit mehreren Funktionen. Usbccgp erstellt physische Geräteobjekte (PDOs) für jede dieser Funktionen. Diese einzelnen PDOs verwalten ihre jeweiligen USB-Funktionstreiber, bei denen es sich um den Winusb.sys-Treiber oder einen USB-Geräteklassentreiber handeln kann.