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

Dieser Artikel beschreibt die Unterstützung des Universal Serial Bus (USB) im Windows-Betriebssystem, so dass Sie USB-Gerätetreiber entwickeln können, die mit Windows interoperabel sind.

USB-Geräte sind Peripheriegeräte wie Mäuse und Tastaturen, die über einen einzigen Port an einen Computer angeschlossen werden. Ein USB Client-Treiber ist die auf dem Computer installierte Software, die mit der Hardware kommuniziert, damit das Gerät funktioniert. Wenn das Gerät zu einer von Microsoft unterstützten Geräteklasse gehört, lädt Windows einen der von Microsoft bereitgestellten USB-Treiber (Inbox-Klassentreiber) für das Gerät. Andernfalls muss ein angepasster Client-Treiber vom Hersteller der Hardware oder von einer dritten Partei bereitgestellt werden. Der/die Benutzer*in installiert den Client-Treiber für das Gerät, wenn das Gerät zum ersten Mal von Windows erkannt wird. Nach erfolgreicher Installation lädt Windows den Client-Treiber jedes Mal, wenn das Gerät angeschlossen wird, und entlädt den Treiber, wenn das Gerät vom Host-Computer abgetrennt wird.

Sie können einen angepassten Client-Treiber für ein USB-Gerät entwickeln, indem Sie die Windows Driver Frameworks (WDF) oder das Windows Driver Model (WDM) verwenden. Anstatt direkt mit der Hardware zu kommunizieren, senden die meisten Client-Treiber ihre Anfragen an den von Microsoft bereitgestellten USB-Treiber Stack, der Funktionsaufrufe der Hardware-Abstraktionsschicht (HAL) durchführt, um die Anfrage des Client-Treibers an die Hardware zu senden. Die Themen in diesem Abschnitt beschreiben die typischen Anfragen, die ein Client-Treiber senden kann, und die Gerätetreiber-Schnittstellen (DDIs), die der Client-Treiber aufrufen muss, um diese Anfragen zu erstellen.

Entwicklergruppe

Ein Client-Treiber für ein USB-Gerät ist ein WDF- oder WDM-Treiber, der mit dem Gerät über DDIs kommuniziert, die vom USB-Treiber-Stack bereitgestellt werden. Dieser Abschnitt ist für C/C++ Entwickler*innen gedacht, die mit WDM vertraut sind. Bevor Sie diesen Abschnitt verwenden, sollten Sie die Grundlagen der Treiberentwicklung verstehen. Weitere Informationen finden Sie unter Einstieg in die Treiberentwicklung unter Windows. Für WDF-Treiber kann der Client-Treiber Kernel-Mode Driver Framework (KMDF) oder Benutzermodus-Treiber Framework (UMDF) Schnittstellen verwenden, die speziell für die Arbeit mit USB-Zielen entwickelt wurden. Weitere Informationen über die USB-spezifischen Schnittstellen finden Sie unter WDF-USB-Referenz und UMDF-USB-E/A-Ziel-Schnittstellen.

Entwicklungstools

Das Windows Driver Kit (WDK) enthält Ressourcen, die für die Treiberentwicklung benötigt werden, wie Header, Bibliotheken, Tools und Beispiele.

USB-Programmierreferenz

Enthält Spezifikationen für E/A-Anfragen, Support-Routinen, Strukturen und Schnittstellen, die von USB-Client-Treibern verwendet werden. Diese Funktionen und zugehörigen Datenstrukturen sind in den WDK-Headern definiert.

USB-Treiberbeispiele

Verwenden Sie diese Beispiele, um mit der Programmierung von USB Client-Treibern zu beginnen.

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

Abschnitte der Dokumentation

  • Erste Schritte mit der Entwicklung von USB-Client-Treibern
    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, erstellen und installieren Sie Ihre ersten Skelett-USB-Treiber für den Benutzermodus und den Kernel-Modus mit Hilfe der in Microsoft Visual Studio enthaltenen USB-Vorlagen.

  • USB-Host-seitige Treiber in Windows
    Bietet eine Übersicht über die Architektur des USB-Treiber-Stacks.

  • Über USB-Block-Anfragen (URBs)
    Lernen Sie, wie ein Client-Treiber eine Datenstruktur variabler Länge namens USB Request Block (URB) aufbaut, um Anfragen an den USB-Treiber Stack zu senden.

  • USB-Deskriptoren
    Lernen Sie, wie ein Client-Treiber eine Datenstruktur variabler Länge namens USB Request Block (URB) aufbaut, um Anfragen an den USB-Treiber Stack zu senden.

  • Auswählen einer USB-Konfiguration in USB-Treibern
    Die Gerätekonfiguration bezieht sich auf die Aufgaben, die der Client-Treiber durchführt, um eine USB-Konfiguration und eine alternative Schnittstelle in jeder Schnittstelle auszuwählen. Der Abschnitt zeigt die Methodenaufrufe, die für die Auswahl einer USB-Konfiguration erforderlich sind.

  • Senden von USB-Datenübertragungen in USB-Client-Treibern
    Beschreibt USB-Pipes, URBs für E/A-Anfragen und wie ein Client-Treiber die Gerätetreiberschnittstellen (DDIs) verwenden kann, um Daten zu und von einem USB-Gerät zu übertragen.

  • Implementieren der Energieverwaltung in USB-Client-Treibern
    Nutzen Sie die Energieverwaltungsfunktionen von USB-Geräten, die der Spezifikation für den Universal Serial Bus (USB) entsprechen und über eine Vielzahl komplexer Funktionen zur Energieverwaltung verfügen.