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.

USB-BOS-Deskriptor, Microsoft-OS-Deskriptor, WinUSB, WCID, WebUSB, Treiberbindung, USB-Diagnose

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 0xEE in ä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:

  1. Ab Anstecken capturen.
  2. Device-, Configuration-, Interface-, Endpoint- und BOS-Deskriptoren sichern.
  3. Nach Microsoft-OS-Deskriptor-Requests suchen.
  4. Vendor-Code und Deskriptor-Länge dekodieren.
  5. Interface-Nummern in den Deskriptor-Daten prüfen.
  6. Compatible-ID-Werte wie WINUSB verifizieren.
  7. Prüfen, ob nicht unterstützte Requests korrekt stallen.
  8. Windows- und Linux-Enumeration-Verhalten vergleichen.
  9. Treiberbindung im Geräte-Manager nach Enumeration prüfen.
  10. 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 -->