USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung
So lösen Sie Probleme mit USB-BOS-Deskriptoren, Microsoft-OS-Deskriptoren, WCID, automatischer WinUSB-Treiberbindung, WebUSB-Landing-Pages, Deskriptor-Stalls und Windows-Enumeration-Verhalten.
Moderne USB-Geräte verlassen sich oft auf Deskriptoren jenseits der einfachen Device- und Configuration-Deskriptoren. BOS-Deskriptoren, Microsoft-OS-Deskriptoren, WCID-Deskriptoren, WebUSB-Platform-Capabilities und WinUSB-kompatible IDs können steuern, wie Windows Treiber bindet und wie Browser oder Tools Device-Capabilities entdecken. Sind diese Deskriptoren falsch, sehen Nutzer "WinUSB driver not binding", "WebUSB device not found", "USB BOS descriptor failed", "Microsoft OS descriptor invalid" oder "device works on Linux but not Windows".
Bus Scope hilft, weil deskriptor-getriebene Probleme während der Enumeration passieren. Wenn Sie die Deskriptor-Requests nicht capturen, sehen Sie am Ende vielleicht nur das Symptom im Geräte-Manager oder in der App.
Was der BOS-Deskriptor ist
BOS steht für Binary Object Store. Er erlaubt einem USB-Gerät, Platform-Capabilities und zusätzliche Device-Level-Informationen zu annoncieren. Für moderne Geräte kann BOS Capabilities enthalten für:
- USB 2.0 Extension
- SuperSpeed-Capability
- WebUSB-Platform-Capability
- Microsoft-OS-2.0-Platform-Capability
Ist der BOS-Deskriptor fehlerhaft, ignorieren Windows oder browser-basierte Tools möglicherweise Features oder die Validierung schlägt fehl.
Microsoft-OS-Deskriptoren und WinUSB
Microsoft-OS-Deskriptoren können Windows helfen, WinUSB automatisch ohne custom INF zu binden. Ältere WCID-Stil-Deskriptoren und neuere Microsoft-OS-2.0-Deskriptoren tauchen beide in realen Geräten auf.
Wichtige Evidence:
- Request für String-Deskriptor-Index
0xEEin älteren Flows. - Vendor-Code, der für OS-Deskriptor-Requests genutzt wird.
- Compatible ID wie
WINUSB. - Extended Properties.
- Interface-Nummer-Zuordnung.
- Ob das Gerät nicht unterstützte Deskriptor-Requests korrekt stalled.
Liefert die Firmware fehlerhafte Daten, bindet Windows WinUSB möglicherweise nicht, obwohl das Gerät enumeriert.
WebUSB
WebUSB nutzt BOS-Platform-Capability-Deskriptoren, um eine Landing-Page und eine vom Browser zugängliche Capability zu annoncieren. Ist der BOS-Eintrag falsch, zeigt ein Browser das Gerät möglicherweise nicht wie erwartet.
Symptome:
- Browser findet das Gerät nicht.
- Gerät erscheint im OS, aber nicht im WebUSB-Chooser.
- Landing-Page-URL fehlt oder ist falsch.
- Gerät läuft mit nativem Tool, aber nicht im Web-Tool.
Der Bus-Trace zeigt, ob der Host BOS angefragt hat und was das Gerät zurückgegeben hat.
Valides STALL-Verhalten
Für einige optionale Microsoft-Deskriptor-Mechanismen sollte ein Gerät, das das Feature nicht unterstützt, den Request stallen. Ein STALL ist nicht immer ein Bug. Der Bug ist, ungültige Deskriptor-Daten zurückzugeben oder Support zu beanspruchen und dann den Folge-Request scheitern zu lassen.
Deshalb zählt der Control-Transfer-Kontext.
Composite-Device-Komplikationen
Microsoft-OS-Deskriptoren zielen oft auf ein bestimmtes Interface. Composite-Devices können fehlschlagen, wenn der Deskriptor auf eine falsche Interface-Nummer zeigt oder Windows nur einen Teil des Geräts bindet.
Prüfen Sie:
- Interface-Nummern.
- Interface-Association-Deskriptoren.
- Compatible-ID-Sektionen.
- Function-Subset-Header.
- Ob WinUSB für ein Interface oder alle Interfaces gedacht ist.
Debug-Checkliste
Nutzen Sie diesen Workflow:
- Ab Anstecken capturen.
- Device-, Configuration-, Interface-, Endpoint- und BOS-Deskriptoren sichern.
- Nach Microsoft-OS-Deskriptor-Requests suchen.
- Vendor-Code und Deskriptor-Länge dekodieren.
- Interface-Nummern in den Deskriptor-Daten prüfen.
- Compatible-ID-Werte wie
WINUSBverifizieren. - Prüfen, ob nicht unterstützte Requests korrekt stallen.
- Windows- und Linux-Enumeration-Verhalten vergleichen.
- Treiberbindung im Geräte-Manager nach Enumeration prüfen.
- Deskriptor-Bytes für Firmware-Debugging sichern.
Enddiagnose
USB-BOS- und Microsoft-OS-Deskriptor-Fehler sind Deskriptor-Contract-Probleme. Das Gerät kann enumerieren und trotzdem WinUSB, WebUSB oder interface-spezifische Treiberbindung nicht erreichen, weil optionale Deskriptoren fehlerhaft, fehlend oder auf das falsche Interface gemappt sind.
Bus Scope hilft, indem es die Enumeration und die Deskriptor-Requests direkt zeigt, sodass Treiberbindungs-Fehler aus der USB-Evidence gedebuggt werden können statt nur aus OS-Symptomen.
<!-- bus-scope-localized-transaction-foundation-v1:start -->USB-Vertragsprüfung für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“
Die direkte Antwort lautet: STALL, Timeout oder Reset erklärt die Ursache nicht allein. Beweisen Sie zuerst, dass der Capture-Provider das richtige Gerät sieht, und lesen Sie danach den Transfervertrag: Request-Typ, Richtung, Recipient, wValue, wIndex, angekündigte und tatsächliche Länge, Status sowie Zustand davor und danach. Verknüpfen Sie bei „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“ jede Aussage mit der ersten Transaktion, die von einem bekannten guten Lauf abweicht.
| Grenze | Zu vergleichen | Belastbares Urteil |
|---|---|---|
| Plattform | Provider, Rechte, Root Hub beziehungsweise usbmon/XHC20 | Kommen Records von der richtigen Verbindung? |
| Setup | bmRequestType, bRequest, wValue, wIndex, wLength | Sendet der Host die beabsichtigte Anfrage? |
| Data | Richtung, Länge und gespeicherte Bytes | Entspricht die Payload dem Vertrag? |
| Status | ACK, STALL, Timeout oder Cancellation | Wo endet die Transaktion tatsächlich? |
| Zustand | Configuration, Interface, Alternate Setting, Endpoint Halt | War das Gerät für die Anfrage bereit? |
Starten Sie vor Reset und Enumeration und behalten Sie Descriptoren, SET_CONFIGURATION, SET_INTERFACE und den Befehl vor dem Fehler. Ein enger Endpoint-Filter kann genau den Control Transfer verstecken, der das spätere Symptom erklärt. Führen Sie pro Versuch eine dokumentierte USB-Aktion aus und ändern Sie nur Firmware, Treiber, Port, Kabel, Hostbefehl oder Timing.
Wie sieht eine zitierfähige Antwort aus?
Nennen Sie angekommenen Request, konkrete Setup-Felder, Geräteantwort und vorherigen Zustand; danach folgt ein Test mit genau einer Änderung. Nicht gespeicherte Bytes durch Retention sind kein bewiesener Packet Loss. Zeitliche Nähe zwischen Command und Reset belegt Korrelation, nicht ohne Wiederholung oder Zustandsübergang die Ursache.
Wann ist ein Vergleich gültig?
Halten Sie VID/PID, Firmware, Speed, Topologie, Provider, Filter und Trigger möglichst gleich. Vergleichen Sie semantische USB-Phasen statt Frame-Nummern zwischen usbmon und USBPcap. Notieren Sie Start, Ende, Version, OS, Anschluss und Dateiprüfsumme. Nutzen Sie vor der Übergabe die Bus-Scope-Fehlersuche.
Semrush-Eigentümer bleiben getrennt: free USB analyzer gehört zur Produktseite, best USB protocol analyzer zur Vergleichsseite und USB descriptor viewer zum Descriptor-Guide. Diese Supportseite erhält keine erfundene Suchmenge oder KD.
<!-- bus-scope-localized-transaction-foundation-v1:end --><!-- multilingual-blog-closeout:start -->Direkte Antwort und Abnahmegrenze
Die kurze Antwort zu „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“ lautet: So lösen Sie Probleme mit USB-BOS-Deskriptoren, Microsoft-OS-Deskriptoren, WCID, automatischer WinUSB-Treiberbindung, WebUSB-Landing-Pages, Deskriptor-Stalls und Windows-Enumeration-Verhalten. Behandeln Sie diese Aussage als zu prüfendes Ergebnis und nicht als Versprechen für jede Eingabe, jedes Gerät, jedes Projekt oder jede Umgebung. Ein vollständiges Ergebnis dokumentiert Ausgangszustand, exakte Aktion, sichtbare Ausgabe und die Bedingung, die den Abschluss in Bus Scope belegt.
Evidenzorientiertes Vorgehen
Beginnen Sie mit einem kleinen, wiederholbaren Fall, bevor Sie ein vollständiges Projekt verändern. Protokollieren Sie Anwendungsversion, Betriebssystem, Eingabe- oder Geräteidentität, relevante Einstellungen und erwartetes Ergebnis. Führen Sie eine bewusste Aktion aus, bewahren Sie den ersten unerwarteten Übergang und vergleichen Sie möglichst mit einem bekannten guten Lauf. Mehrere gleichzeitige Änderungen verdecken, welche Bedingung den Fehler erzeugt oder behoben hat.
Prüfpunkt 1: USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbi
Behandeln Sie „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“ als eigene Abnahmegrenze für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 2: So lösen Sie Probleme mit USB-BOS-Deskriptoren, Microsoft-OS-Deskriptoren, WCID, automatis
Formulieren Sie für „So lösen Sie Probleme mit USB-BOS-Deskriptoren, Microsoft-OS-Deskriptoren, WCID, automatischer WinUSB-Treiberbindung, WebUSB-Landing-Pages, Deskriptor“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 3: Was der BOS-Deskriptor ist
Behandeln Sie „Was der BOS-Deskriptor ist“ als eigene Abnahmegrenze für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 4: Microsoft-OS-Deskriptoren und WinUSB
Formulieren Sie für „Microsoft-OS-Deskriptoren und WinUSB“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 5: WebUSB
Behandeln Sie „WebUSB“ als eigene Abnahmegrenze für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 6: Valides STALL-Verhalten
Formulieren Sie für „Valides STALL-Verhalten“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 7: Composite-Device-Komplikationen
Behandeln Sie „Composite-Device-Komplikationen“ als eigene Abnahmegrenze für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 8: Debug-Checkliste
Formulieren Sie für „Debug-Checkliste“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 9: Enddiagnose
Behandeln Sie „Enddiagnose“ als eigene Abnahmegrenze für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 10: USB-Vertragsprüfung für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, W
Formulieren Sie für „USB-Vertragsprüfung für „USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung““ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Abnahmematrix
| Prüfpunkt | Aufzubewahrender Nachweis | Passkriterium |
|---|---|---|
| USB-BOS- und Microsoft-OS-Deskriptor-Debugging: WebUSB, WinUSB, WCID und Windows-Treiberbindung | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| So lösen Sie Probleme mit USB-BOS-Deskriptoren, Microsoft-OS-Deskriptoren, WCID, automatischer WinUSB-Treiberbindung, We | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Was der BOS-Deskriptor ist | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Microsoft-OS-Deskriptoren und WinUSB | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| WebUSB | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Valides STALL-Verhalten | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
Fehlerisolierung, Recovery und Übergabe
Stoppen Sie beim ersten fehlerhaften Übergang. Bewahren Sie Quelle, Projekt, Session oder Capture und erstellen Sie vor destruktiven Änderungen eine Kopie. Ändern Sie pro Experiment nur eine Variable. Ein kompletter erneuter Lauf nach mehreren Änderungen kann anders enden, ohne die Ursache zu erklären.
Unterscheiden Sie fehlende Evidenz von Evidenz für ein Fehlen. Eine leere Ansicht kann auf falsche Eingabe, Scope, Filter, Berechtigung, Gerät, Zeitbereich oder Projektzustand hinweisen. Beweisen Sie Aufnahme oder Import, bevor Sie Decoder, Editor, Bericht oder Export interpretieren.
Öffnen Sie vor der Übergabe das dauerhafte Artefakt erneut und prüfen Sie Anfang, Entscheidungsstelle und Ende. Dokumentieren Sie Version, Plattform, Konfiguration, Erwartung, Beobachtung und kleinste Reproduktion. Entfernen oder schwärzen Sie sensible Daten und prüfen Sie die Berechtigung des Empfängers.
Fragen und Antworten
Wie beginnt man am schnellsten zuverlässig?
Verwenden Sie den kleinsten repräsentativen Fall, notieren Sie das erwartete Ergebnis und ändern Sie nur eine Variable. Beweisen Sie den Grundpfad, bevor Filter, Effekte, Bearbeitungen, Automatisierung oder größere Quellen hinzukommen.
Welche Evidenz sollte gespeichert werden?
Bewahren Sie Eingabeidentität, Version, Plattform, Einstellungen, exakte Aktion, ersten unerwarteten Übergang und Endausgabe. Projekt, Session, Bericht oder Export müssen geschlossen und erneut geöffnet werden.
Wann sollte das Verfahren wiederholt werden?
Wiederholen Sie es nach relevanten Änderungen an Anwendung, Betriebssystem, Treiber, Firmware, Modell, Quelle oder Workflow. Behalten Sie den früher akzeptierten Fall als unveränderte Vergleichsbasis.
Wann ist die Aufgabe übergabefähig?
Wenn eine autorisierte zweite Person Eingabe und Aktion erkennt, dasselbe Ergebnis reproduziert, verbleibende Grenzen versteht und das gespeicherte Artefakt ohne undokumentierten lokalen Zustand öffnen kann.
Verwandte Anleitungen
Diese gleichsprachigen Seiten decken angrenzende Schritte ab, ohne den kanonischen Eigentümer dieses Themas zu verändern:
<!-- multilingual-blog-closeout:end -->