Freigeben über


Einführung in WinUSB für Entwickler

Als Treiberentwickler kann das Verständnis von WinUSB (Windows USB) Ihren Entwicklungsprozess erheblich optimieren, insbesondere wenn Sie mit USB-Geräten arbeiten. WinUSB ist ein generischer Treiber, der in Windows enthalten ist. Sie können mit USB-Geräten kommunizieren, ohne einen benutzerdefinierten Treiber schreiben zu müssen. Mithilfe dieses Treibers können Sie Zeit sparen, die Komplexität verringern und die Kompatibilität in verschiedenen Windows-Versionen sicherstellen.

Wichtige Vorteile der Verwendung von WinUSB

  • Vereinfachte Entwicklung

    • Benutzerfreundlichkeit: WinUSB abstrahiert einen Großteil der Komplexität der USB-Kommunikation, was die Interaktion mit USB-Geräten erleichtert.
    • Kein benutzerdefinierter Treiber erforderlich: Für viele USB-Geräte kann WinUSB direkt verwendet werden, was die Notwendigkeit zum Schreiben und Verwalten eines benutzerdefinierten Treibers überflüssig macht.
  • Plattformübergreifende Kompatibilität

    • Standardisierte Schnittstelle: WinUSB bietet eine standardisierte Schnittstelle für die USB-Kommunikation, die die Kompatibilität zwischen verschiedenen Windows-Versionen gewährleisten kann.
  • Zeit- und Kosteneffizienz

    • Reduzierte Entwicklungszeit: Die Verwendung von WinUSB kann die zum Entwickeln und Testen eines USB-Treibers erforderliche Zeit erheblich reduzieren.
    • Geringere Wartungskosten: Da Microsoft WinUSB verwaltet, können Sie sich darauf verlassen, dass sie aktualisiert und unterstützt wird, wodurch die langfristigen Wartungskosten reduziert werden.
  • Zugriff auf USB-Features

    • Volle USB-Funktionalität: WinUSB unterstützt eine vielzahl von USB-Funktionen, darunter Massenübertragungen, Steuerübertragungen, Unterbrechungsübertragungen und isochrone Übertragungen.

Was Sie mit WinUSB erreichen können

  • Gerätekommunikation

    • Datenübertragung: Senden und Empfangen von Daten an und von einem USB-Gerät mithilfe von Massen-, Steuer-, Unterbrechungs- oder isochronen Übertragungen.
    • Steuerungsanforderungen: Senden Sie Steuerelementanforderungen, um das Gerät zu konfigurieren oder Informationen abzurufen.
  • Gerätekonfiguration

    • Einstellungskonfiguration: Wählen Sie Konfigurationen, Schnittstellen und alternative Einstellungen aus, um das USB-Gerät zu konfigurieren.
    • Endpunktverwaltung: Verwalten von Endpunkten für die Datenübertragung.
  • Geräteenumeration

    • Geräteidentifikation: Aufzählen und Identifizieren von USB-Geräten, die mit dem System verbunden sind.
    • Deskriptorabruf: Abrufen von Gerätedeskriptoren, Konfigurationsdeskriptoren, Schnittstellendeskriptoren und Endpunktdeskriptoren.
  • Benutzerdefinierte Anwendungen

    • Benutzermodusanwendungen: Entwickeln von Benutzermodusanwendungen, die mit USB-Geräten kommunizieren, mithilfe der WinUSB-API.
    • Firmwareupdates: Implementieren sie Firmwareupdatemechanismen für USB-Geräte.
  • Testen und Debuggen

    • Prototyping: Schnell eine USB-Gerätekommunikation prototypisieren, um die Hardwarefunktionalität zu testen.
    • Debuggen: Verwenden Sie WinUSB, um Kommunikationsprobleme zwischen dem Host und dem USB-Gerät zu debuggen.

Komponenten von WinUSB

WinUSB beinhaltet:

  • Ein Kernelmodustreiber (winusb.sys)
  • Eine Dynamic Link Library (winusb.dll) im Benutzermodus, die WinUSB-Funktionen verfügbar macht, die in winusb.h beschrieben sind. Sie können diese Funktionen nutzen, um USB-Geräte mit Software im Benutzermodus zu verwalten.

Standardmäßig wird winusb.sys im Kernelmodusstapel des Geräts als oberer Filtertreiber installiert. Apps kommunizieren mit dem User-Mode Driver Framework (UMDF)-Funktionstreiber des Geräts, um Lese-, Schreib- oder Geräte-E/A-Steuerungsanforderungen ausstellen zu können. In dieser Konfiguration dient winusb.sys als Plug and Play- und Energieverwalter des Geräte-Stacks. Sie können auch winusb.sys als Funktionstreiber für ein USB-Gerät installieren.

Erste Schritte mit WinUSB

Dieser Abschnitt enthält Informationen zu:

  • Auswahl des richtigen Treibers für ein Gerät
  • Verwendung von WinUSB für die Kommunikation mit USB-Geräten
  • Installieren von winusb.sys als Funktionstreiber für ein USB-Gerät

Es enthält auch detaillierte Codebeispiele, die zeigen, wie Apps und USB-Geräte kommunizieren.

Hinweis

WinUSB unterstützt isochrone Übertragungen ab Windows 8.