Kundenspezifische USB-VID/PID - Windows 7 & 8 automatisch wählen usbser.sys Treiber
Ich bin in der firmware Entwicklung für ein USB-Gerät mit einem STM32F070 mikrocontroller. Generiert ich eine bare-metal (no OS) code-Basis mit STM32CubeMX, die Einstellung der Geräte als USB CDC (Communications Device Class), so dass es automatisch erkannt wird als VCP (Virtual COM Port) von Windows 7, 8 und 10. Treiber-Details zeigt sich, dass es mithilfe der Windows - usbser.sys
Treiber.
Wenn ich die USB Vendor ID (VID) oder Produkt-ID (PID) oder den Hersteller String, es ist immer noch schnell erkannt, wie ein USB-Seriell-Gerät von Windows 10 Geräte-Manager, aber nicht die von Windows 7 oder 8. Windows 7 und 8 verbringen eine lange Zeit auf der Suche mit Windows Update nach einem Treiber, und dann nicht in der Lage sind, einen zu finden.
Wie kann ich ändern, die firmware des Gerätes/Deskriptoren zum aktivieren von Windows 7 und 8 hosts automatisch installieren Sie die usbser.sys
Treiber für das Gerät, wenn es Hersteller-spezifische Werte für die USB VID, PID und Hersteller String?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Windows 10 kommt mit einem neuen Treiber namens usbser.inf entsprechen, wird Geräte, die konform zu der USB-CDC-ACM-Spezifikation und führen die usbser.sys Treiber geladen werden, für Sie.
Um Ihre USB-CDC-ACM-Gerät arbeiten, auf älteren Versionen von Windows, Sie müssen eine INF-Datei selbst, die sagt, Windows zu laden usbser.sys wenn es erkennt ein USB-Gerät mit der vendor-ID und Produkt-ID. Für Windows 7, Vista und XP, das ist nur eine einfache Sache zu schreiben, die INF-Datei und verteilen Sie es an Ihre Kunden. Für Windows 8 und höher, Sie benötigen zum Kauf eines code signing-Zertifikats und Unterschreiben Sie dann die INF-Datei (oder in software-Tools wie zadig und libwdi, mit denen Sie umgehen der Signatur-überprüfung).
Bitte beachten Sie, dass die Unterzeichnung unterscheidet sich von WHQL. Sobald Sie die Signatur-Zertifikat, anmelden können Sie sich den Treiber selbst, ohne jede Wartezeit oder keine Genehmigung von Microsoft.
Hier ist ein Beispiel für eine INF-Datei verwendet usbser.sys:
https://github.com/pololu/a-star/blob/master/drivers/a-star.inf
Schrieb ich viel darüber, wie Zeichen-Treiber-Pakete in diesem Artikel:
http://www.davidegrayson.com/signing/
das problem ist das
.inf
- Datei. in win 10 gibt es eine neue (usbser.inf
), die den Treiber lädtusbser.sys
automatisch in win 7 und 8 schreiben Sie Ihre eigenen.inf
- Datei, links die PID und VID derusbser.sys
- Treiber, siehe https://msdn.microsoft.com/de-de/library/windows/hardware/ff538820%28v=vs.85%29.aspx und https://msdn.microsoft.com/de-de/library/windows/hardware/dn707976%28v=vs.85%29.aspxQuelle: https://msdn.microsoft.com/de-de/library/windows/hardware/dn707976%28v=vs.85%29.aspx
In https://msdn.microsoft.com/de-de/library/windows/hardware/dn707976%28v=vs.85%29.aspx,
Brauche ich zu schreiben mein eigenes host-side USB-Treiber für CDC-Gerät und
https://community.nxp.com/thread/301439 sind Beispiel .inf-Dateien für win 7 und 8.
.inf
Datei ausgewählt basierend auf der {VID, PID, MfrString}, so, dass das, was ich gebeten haben unmöglich ist? Es sei denn, wir bekommen das Gerät WHQL-zertifiziert und haben Ihre.inf
Hinzugefügt, um Windows Update - dann windows installiert den Treiber automatisch bei der Aufzählung der Gerät, richtig? Oder statt WHQL, könnten wir nutzen, Microsoft OS-Deskriptoren im Gerät zu haben, es präsentiert ein WCID an den host, so dass die Gastgeber wissen, zu wählenusbser.sys
als der Fahrer, und keine.inf
wäre überhaupt erforderlich?