Freigeben über


Universal Serial Bus (USB)

Universal Serial Bus (USB) bietet eine erweiterbare Plug & Play serielle Schnittstelle, die eine standardmäßige, kostengünstige Verbindung 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 Spezielle Interessengruppe (SPECIAL Interest Groups, SIGs), die die offizielle USB-Spezifikation, Testspezifikationen und -tools verwaltet.

Windows-Betriebssysteme enthalten systemeigene Unterstützung für USB-Hostcontroller, Hubs und 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-Symbol für Geräte-GeneratorenUSB-Symbol für TreiberentwicklerSYMBOL für USB für App-EntwicklerUSB-HCK-Zertifizierungssymbol

USB in Windows

Entwicklungstools

USB-Beispiele

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

Führt Sie in die Entwicklung von USB-Treibern ein. Hier finden Sie 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 Lernprogramme zum Schreiben Ihrer ersten Benutzermodus- und Kernelmodus-USB-Treiber mithilfe der USB-Vorlagen, die in Microsoft Visual Studio enthalten sind.

Schreiben eines USB-Hostcontrollertreibers

Wenn Sie einen xHCI-Hostcontroller entwickeln, der nicht mit der Spezifikation kompatibel ist oder eine benutzerdefinierte Nicht-xHCI-Hardware (z. B. einen virtuellen Hostcontroller) entwickelt, können Sie einen Hostcontrollertreiber schreiben, der mit UCX kommuniziert. Ziehen Sie z. B. eine drahtlose Docking-Station in Betracht, die USB-Geräte unterstützt. Der PC kommuniziert mit USB-Geräten über das drahtlose Dock mithilfe von USB über TCP als Transport.

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-Connector-Treibers

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

Entwickeln von Windows-Treibern für USB-Typ-C-Connectors

Referenz zur Erweiterung der USB-Verbinder-Manager-Klasse (UcmCx)

Schreiben eines USB-Dual-Role-Controllertreibers

USB Dual Role Controller werden jetzt in Windows 10 unterstützt. Windows enthält integrierten Clienttreiber für ChipIdea- und Synopsis-Controller. Für andere Controller stellt Microsoft eine Reihe von Programmierschnittstellen bereit, mit denen die Erweiterung der dualen Rollenklasse (UrsCx) und der Clienttreiber miteinander kommunizieren können, um die Rollenwechselfunktion eines Dual-Role-Controllers zu verarbeiten.

Weitere Informationen zu dieser Funktion finden Sie unter:

Usb Dual Role Driver Stack-Architektur

Programmierreferenz für USB-Dual-Role-Controllertreiber

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

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

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

Programmierreferenz für emulierte USB-Host-Controller-Treiber

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

Schreiben einer UWP-App

  • Sprechen Sie mit USB-Geräten, von A bis Z: Enthält schrittweise Anleitungen zur Implementierung von USB-Features in einer UWP-App. Um eine solche App für ein USB-Gerät zu schreiben, benötigen Sie Visual Studio und Microsoft Windows Software Development Kit (SDK).

  • Windows.Devices.Usb: Programmierreferenz für UWP-Namespaces.

Schreiben einer Windows-Desktop-App

  • Schreiben sie eine WinUSB-Anwendung: Beschreibt, wie eine Anwendung WinUSB-Funktionen 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. 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 können, erfassen Sie Ablaufverfolgungen von Vorgängen und anderen Systemereignissen, und beobachten Sie, 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™)

Weitere Ressourcen für USB

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

  • Microsoft Windows USB Core Team Blog: Sehen Sie sich Beiträge des Microsoft USB-Teams an. Der Blog konzentriert sich auf den Windows-USB-Treiberstapel, der mit verschiedenen USB-Host-Controllern und USB-Hubs in Windows-PCs zusammenarbeitet. Eine nützliche Ressource für USB-Clienttreiberentwickler und USB-Hardwaredesigner, um die Implementierung des Treiberstapels zu verstehen, häufige Probleme zu beheben und zu erläutern, wie Tools zum Sammeln von Ablaufverfolgungen und Protokolldateien verwendet werden.

  • OSR Online Lists - 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 neu bei der Entwicklung von USB-Geräten und Treibern sind, die mit Windows-Betriebssystemen arbeiten.

USB-Hardware zum Lernen

  • MUTT-Geräte: MUTT- und SuperMUTT-Geräte und 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 verwendet werden können, insbesondere Stresstests.

  • OSR USB FX2 Learning Kit: Wenn Sie noch nicht mit der Entwicklung von USB-Treibern arbeiten. Das Kit ist am besten geeignet, um die in dieser Dokumentation enthaltenen USB-Proben zu untersuchen. Sie können das Lernkit aus dem OSR Online Store abrufen.

Informationen zu von Microsoft bereitgestellten USB-Treibern

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

  • USB-hostseitige 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-WENN-Geräteklassentreiber: Listet die von Microsoft bereitgestellten Treiber für die unterstützten USB-Geräteklassen auf. Windows bietet systeminterne Geräteklassentreiber für viele von USB-WENN genehmigte Geräteklassen, Audio, Massenspeicher usw.

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

  • Generischer USB-Treiber für Verbundgerä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 könnte.