Erste Schritte zur Entwicklung von USB-Client-Treibern
In diesem Abschnitt werden Konzepte und Tools für die USB-Treiberentwicklung vorgestellt. Dieser Abschnitt richtet sich an Entwickler, die neu in der Treiberentwicklung sind und einen Treiber für ein USB-Gerät implementieren möchten, für das Microsoft keinen Inbox-Treiber bereitstellt. Diese Treiber werden in dieser Dokumentation als USB-Client-Treiber bezeichnet. Die Themen in diesem Abschnitt beschreiben allgemeine USB-Konzepte und bieten Schritt-für-Schritt-Anleitungen zur Durchführung allgemeiner Aufgaben eines USB-Client-Treibers. Ausführliche Informationen zu diesen Konzepten finden Sie in den USB-Spezifikationen unter USB-Dokumente.
Treiberentwickler müssen über Programmiererfahrung in der Programmiersprache C++ verfügen und die Konzepte von Funktionszeigern, Rückruf-Funktionen und Ereignishandlern verstehen. Wenn ein Treiber auf der Grundlage des User-Mode Driver Frameworks geschrieben wird, muss der Entwickler mit C++ und COM vertraut sein.
Lernpfad für Entwickler von USB-Client-Treibern
Lesen Sie die USB-Spezifikation 3.2.
- Lernen Sie die Industriespezifikation und die verschiedenen Komponenten (Gerät, Host-Controller und Hub) der Architektur kennen. Es ist wichtig, das Datenflussmodell zu verstehen und zu wissen, wie der Host und das Gerät miteinander kommunizieren und welches Format die Anfragen haben, die das Gerät erwartet.
Besorgen Sie sich ein Test-USB-Gerät.
Sie haben ein USB-Gerät und dessen Hardware-Spezifikation. Die Spezifikation beschreibt die Fähigkeiten des Geräts und die unterstützten Herstellerbefehle. Verwenden Sie die Spezifikation, um die Funktionalität des Gerätetreibers und die damit verbundenen Designentscheidungen zu bestimmen.
Nehmen Sie das OSR USB FX2 Lernkit, wenn Sie ein Einsteiger in der USB-Treiberentwicklung sind. Das Kit ist am besten geeignet, um die in dieser Dokumentation enthaltenen USB-Proben zu untersuchen.
Sie haben ein Microsoft USB Test Tool (MUTT) Gerät. MUTT-Hardware kann über JJG Technologies bezogen werden. Auf dem Gerät ist keine Firmware installiert. Um die Firmware zu installieren, laden Sie das MUTT-Softwarepaket herunter. Weitere Informationen finden Sie in der Dokumentation, die dem Paket beiliegt.
Studieren Sie das USB-Geräte-Layout und die zugehörigen USB-Deskriptoren.
- Beschreiben Sie die Fähigkeiten Ihres Geräts, indem Sie den Konfigurationsdeskriptor, die Schnittstellendeskriptoren für alle unterstützten alternativen Einstellungen und die Endpunktdeskriptoren lesen. Mit USBView kann der Entwickler alle USB-Controller und die daran angeschlossenen USB-Geräte durchsuchen und auch die Gerätekonfiguration überprüfen.
Wählen Sie ein Treibermodell für die Entwicklung eines USB-Client-Treibers
- Legen Sie fest, ob der Treiber ein benutzerdefinierter Treiber sein soll oder einer der von Microsoft bereitgestellten Treiber auf der Grundlage des Designs des Zielgeräts verwendet werden soll. Wählen Sie das beste Treibermodell aus und beschreiben Sie die von jedem Modell unterstützten Funktionen.
Überprüfen Sie den von Microsoft zur Verfügung gestellten USB-Treiber-Stack und die Konzepte zur Treiberentwicklung.
- USB-Host-seitige Treiber in Windows.
- Konzepte für alle Treiber-Developer.
- Konzepte für alle USB-Developer.
- Geräteknoten und Gerätestapel.
- Entwicklung von Treibern mit Windows Driver Foundation, geschrieben von Penny Orwick und Guy Smith. Weitere Informationen finden Sie unter Entwicklung von Treibern mit WDF.
- USB-Treiberbeispiele.
- Verstehen Sie die Grundlagen der Funktionsweise von Treibern in Windows-Betriebssystemen. Die Kenntnis der Grundlagen hilft, geeignete Designentscheidungen zu treffen und den Entwicklungsprozess zu rationalisieren.
- Unterscheidung zwischen User-Mode- und Kernel-Mode-Treiberarchitekturmodellen.
- Verstehen, wie Treiber geladen werden und wie Windows Plug-and-Play-Geräte (PnP-Geräte) in einem Gerätebaum und Geräteknoten organisiert. Der Entwickler sollte auch verstehen, wie der PnP-Manager Gerätestapel aufbaut und wo der Treiber und seine Geräteobjekte im Gerätestapel platziert werden.
Bereiten Sie die Entwicklungs- und Debugging-Umgebung vor.
- Installieren Sie das neueste Windows Driver Kit (WDK).
- Installieren Sie Microsoft Visual Studio.
- Einrichten für die Fehlersuche.
- Stellen Sie sicher, dass die -Header und -Bibliotheken, die von einem USB-Client-Treiber benötigt werden, verfügbar sind.
- Wenn Sie einen Kernel-Mode-Treiber schreiben, der auf Host- und Zielcomputern über ein Ethernet-Netzwerk debuggt, muss ein 1394-Kabel, ein USB 2.0- oder 3.0-Debug-Kabel oder ein Nullmodem-Kabel konfiguriert werden.
- Wenn Sie einen Treiber für den Benutzermodus schreiben, können Sie die in der Microsoft Visual Studio-Umgebung verfügbaren Debugger für den Benutzermodus verwenden. Der Entwickler sollte mit vertraut sein, wie man sich an einen Prozess anhängt oder einen Prozess unter dem Debugger startet.
Schreiben Sie Ihren ersten Treiber.
- Wie Sie Ihren ersten USB-Client-Treiber (KMDF) schreiben.
- Wie Sie Ihren ersten USB-Client-Treiber (UMDF) schreiben.
- Schreiben, erstellen und installieren Sie Ihren ersten USB-Client-Treiber, indem Sie die in Visual Studio 2012 enthaltenen USB-Vorlagen verwenden. Der Entwickler sollte in der Lage sein, Framework-Treiber, Geräte- und Warteschlangenobjekte zu beschreiben und zu verstehen, wie das Framework mit Ihrem Treiber kommuniziert.
Erweitern Sie Ihren Treiber, indem Sie eine USB-Kontrollübertragungsanforderung senden.
- Senden Sie Standardsteuerungsanfragen und Herstellerbefehle an Ihr Gerät. Weitere Informationen finden Sie unter So senden Sie eine USB-Steuerungsübertragung.
Erweitern Sie Ihren Treiber, um WDF USB I/O Zielobjekte zu verwenden, um USB Datenübertragungen durchzuführen.
- Erweitern Sie Ihren Treiber, um allgemeine Aufgaben auszuführen, wie unter Allgemeine Aufgaben für USB-Client-Treiber beschrieben.
Ressourcen der Gemeinschaft für USB
Microsoft Windows USB Core Team Blog
Lesen Sie die Beiträge des Microsoft USB-Teams. 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-Client-Treiber-Entwickler und USB-Hardware-Designer, die die Implementierung des Treiber-Stacks versteht, häufige Probleme löst und erklärt, wie man Tools zum Sammeln von Traces und Log-Dateien verwendet.
-
Diskussionsliste, verwaltet von OSR Online für Entwickler von Kernel-Mode-Treibern.
Windows Dev-Center für die Hardware-Entwicklung
Windows Driver Kit, stellen Sie mit dem Windows Hardware Lab Kit sicher, dass Ihr Produkt zuverlässig und kompatibel mit Windows ist, und lernen Sie Windows-Treiberbeispiele kennen.