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 in Windows
Windows-Unterstützung für USB-Typ-C-Connectors: Für OEMs, die ein Windows-System mit USB-Typ-C-Anschlüssen erstellen möchten.
Universal Serial Bus 4 (USB4™):Bietet OEMs, IHVs und Siliziumanbietern, die Windows-Systeme unterstützen, die USB4 mit Informationen zum USB4-Verbindungs-Manager unterstützen, das Debuggen erleichtern und Verfahren zur Verfügung stellen.
HÄUFIG gestellte Fragen von Treiberentwicklern zu usb-Stapeln und -Features, die in USB unterstützt werden.
Microsoft OS-Deskriptoren für USB-Geräte: Windows definiert MS OS-Deskriptoren, die eine bessere Aufzählung ermöglichen, wenn eine Verbindung mit dem Windows-Betriebssystem hergestellt wird.
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.
- Erste Schritte mit der Entwicklung von USB-Client-Treibern
- Programmierreferenz für USB-Gerätetreiber
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.
USB-Hostcontroller (UCX)-Referenz
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
- Referenz zur Erweiterung der USB-Verbinder-Manager-Klasse (UcmCx)
- USB-Hostcontroller (UCX)-Referenz
- Referenz zur USB-Funktionsklassenerweiterung (UFX)
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™)
Universal Serial Bus 4 (USB4™):Bietet OEMs, IHVs und Siliziumanbietern, die Windows-Systeme unterstützen, die USB4 mit Informationen zum USB4-Verbindungs-Manager unterstützen, das Debuggen erleichtern und Verfahren zur Verfügung stellen.
Einführung in den USB4-Verbindungs-Manager in Windows: Der Verbindungs-Manager in einer USB4-Domäne ist für Enumeration, Konfiguration und Verwaltung der USB4-Domäne verantwortlich.
Designdetails und allgemeine Anforderungen an universal Serial Bus 4 (USB4™): Allgemeine Design- und Benutzerfreundlichkeitsanforderungen.
Universal Serial Bus 4 (USB4™) erforderliche Tests: Die HLK-Anforderungen sind nicht darauf ausgelegt, eine vollständige End-to-End-Funktionstestabdeckung für den USB4-Funktionssatz bereitzustellen. Wir empfehlen, dass Sie eine gründliche Validierung wichtiger Nutzungsszenarien durchführen.
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.