Übersicht über die Entwicklung von Windows-Clienttreibern für USB-Geräte

In diesem Artikel wird die Unterstützung von USB (Universal Serial Bus) im Windows-Betriebssystem beschrieben, damit Sie USB-Gerätetreiber entwickeln können, die mit Windows interoperabel sind.

USB-Geräte sind Peripheriegeräte, z. B. Mausgeräte und Tastaturen, die über einen einzigen Anschluss mit einem Computer verbunden sind. Ein USB-Clienttreiber ist die Software, die auf dem Computer installiert ist, der mit der Hardware kommuniziert, um das Gerät funktionsfähig zu machen. Wenn das Gerät zu einer von Microsoft unterstützten Geräteklasse gehört, lädt Windows einen der von Microsoft bereitgestellten USB-Treiber (mitgelieferte Klassentreiber) für das Gerät. Andernfalls muss ein benutzerdefinierter Clienttreiber vom Hardwarehersteller oder einem Drittanbieter bereitgestellt werden. Der Benutzer installiert den Clienttreiber für das Gerät, wenn das Gerät zum ersten Mal von Windows erkannt wird. Nach erfolgreicher Installation lädt Windows den Clienttreiber jedes Mal, wenn das Gerät angefügt wird, und entlädt den Treiber, wenn das Gerät vom Hostcomputer getrennt wird.

Sie können einen benutzerdefinierten Clienttreiber für ein USB-Gerät mithilfe der Windows Driver Frameworks (WDF) oder des Windows-Treibermodells (WDM) entwickeln. Anstatt direkt mit der Hardware zu kommunizieren, senden die meisten Clienttreiber ihre Anforderungen an den von Microsoft bereitgestellten USB-Treiberstapel, der Hal-Funktionsaufrufe (Hardware Abstraction Layer) durchführt, um die Anforderung des Clienttreibers an die Hardware zu senden. In den Themen in diesem Abschnitt werden die typischen Anforderungen beschrieben, die ein Clienttreiber senden kann, und die Gerätetreiberschnittstellen (Device Driver Interfaces, DDIs), die der Clienttreiber aufrufen muss, um diese Anforderungen zu erstellen.

Entwicklergruppe

Ein Clienttreiber für ein USB-Gerät ist ein WDF- oder WDM-Treiber, der über DDIs, die vom USB-Treiberstapel verfügbar gemacht werden, mit dem Gerät kommuniziert. Dieser Abschnitt ist für C/C++-Programmierer gedacht, die mit WDM vertraut sind. Bevor Sie diesen Abschnitt verwenden, sollten Sie sich mit der grundlegenden Treiberentwicklung vertraut machen. Weitere Informationen finden Sie unter Erste Schritte mit Windows-Treibern. Für WDF-Treiber kann der Clienttreiber Kernel-Mode Driver Framework (KMDF) oder UMDF-Schnittstellen (User-Mode Driver Framework ) verwenden, die speziell für die Arbeit mit USB-Zielen entwickelt wurden. Weitere Informationen zu den USB-spezifischen Schnittstellen finden Sie unter WDF-USB-Referenz und UMDF-USB-E/A-Zielschnittstellen.

Entwicklungstools

Das Windows Driver Kit (WDK) enthält Ressourcen, die für die Treiberentwicklung erforderlich sind, z. B. Header, Bibliotheken, Tools und Beispiele.

USB-Programmierreferenz

Enthält Spezifikationen für E/A-Anforderungen, Supportroutinen, Strukturen und Schnittstellen, die von USB-Clienttreibern verwendet werden. Diese Routinen und zugehörigen Datenstrukturen werden in den WDK-Headern definiert.

USB-Treiberbeispiele

Verwenden Sie diese Beispiele für die ersten Schritte mit der Programmierung von USB-Clienttreibern.

Sie können offizielle USB-Spezifikationen von der Website der Universal Serial Bus Document Library herunterladen. Diese Website enthält Links zu verschiedenen Überarbeitungen der Universal Serial Bus-Spezifikationen.

Abschnitte der Dokumentation

  • Erste Schritte mit der Entwicklung von USB-Clienttreibern
    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, erstellen und installieren Sie Ihre ersten Skeleton-Benutzermodus- und Kernelmodus-USB-Treiber mithilfe der in Microsoft Visual Studio enthaltenen USB-Vorlagen.

  • USB-hostseitige Treiber in Windows
    Bietet eine Übersicht über die ARCHITEKTUR des USB-Treiberstapels.

  • Informationen zu USB-Blockanforderungen (URBs)
    Erfahren Sie, wie ein Clienttreiber eine Datenstruktur mit variabler Länge erstellt, die als USB-Anforderungsblock (URB) bezeichnet wird, um Anforderungen an den USB-Treiberstapel zu übermitteln.

  • USB-Deskriptoren
    Erfahren Sie, wie ein Clienttreiber eine Datenstruktur mit variabler Länge erstellt, die als USB-Anforderungsblock (URB) bezeichnet wird, um Anforderungen an den USB-Treiberstapel zu übermitteln.

  • Auswählen einer USB-Konfiguration in USB-Treibern
    Gerätekonfiguration bezieht sich auf die Aufgaben, die der Clienttreiber ausführt, um eine USB-Konfiguration und eine alternative Schnittstelle in jeder Schnittstelle auszuwählen. Der Abschnitt zeigt die Methodenaufrufe, die zum Auswählen einer USB-Konfiguration erforderlich sind.

  • Senden von USB-Datenübertragungen in USB-Clienttreibern
    Beschreibt USB-Pipes, URBs für E/A-Anforderungen und wie ein Clienttreiber die Gerätetreiberschnittstellen (Device Driver Interfaces, DDIs) zum Übertragen von Daten zu und von einem USB-Gerät verwenden kann.

  • Implementieren der Energieverwaltung in USB-Clienttreibern
    Nutzen Sie die Energieverwaltungsfunktionen von USB-Geräten, die der Usb-Spezifikation (Universal Serial Bus) entsprechen, und verfügen über einen umfangreichen und komplexen Satz von Energieverwaltungsfunktionen.