Windows: Was macht der Name einer uralten Maus im Bluetooth-Treiber?

Einige Softwareprobleme fördern bekanntlich kuriose Workarounds zutage. Ein solcher ist auch in Microsofts hauseigenem Bluetooth-Treiber für Windows zu finden, worin der Name der Microsoft Wireless Notebook Presenter Mouse 8000 verewigt ist. Microsoft-Veteran Raymond Chen klärt in einem neuen Blogbeitrag(öffnet im neuen Fenster) auf, wie es dazu kam und warum die fast 20 Jahre alte Maus(öffnet im neuen Fenster) ohne diesen Eintrag nicht funktioniert.
"Es gibt eine Menge schlechter Hardware auf dem Markt, und es gibt eine Menge Kompatibilitäts-Hacks, um damit umzugehen" , erklärt Chen. Als Beispiele nennt er CD-ROM-Controller-Karten, die dasselbe Laufwerk gleich vier Mal an das Betriebssystem melden, oder USB-Geräte, die mehr als die angepriesenen 500 mW Strom verbrauchen.
"Es gibt Geräte, deren Deskriptoren syntaktisch ungültig sind oder Werte enthalten, die außerhalb des zulässigen Bereichs liegen oder einfach unsinnig sind" , so Chen weiter. Für die Korrektur solcher Werte werde häufig spezieller Code entwickelt, an dem sich der damit behobene Fehler leicht ablesen lasse. Gleiches trifft auch auf den Eintrag der Microsoft Wireless Notebook Presenter Mouse 8000 in Microsofts Bluetooth-Treiber zu.
Microsoft hält eigene Vorgaben nicht ein
Laut Chen muss die Zeichenfolge für einen lokalen Gerätenamen unter Windows in UTF-8 kodiert sein. Bei der Microsoft Wireless Notebook Presenter Mouse 8000 hatte der Hersteller jedoch an seinem eigenen Firmennamen das Registered-Trade-Mark-Zeichen ® angehängt, das nicht in UTF-8, sondern in Codepage 1252(öffnet im neuen Fenster) kodiert war und damit im System als ⟪AE⟫ erschien.
Wie Chen weiter erklärt, ist ein bloßes ⟪AE⟫ aber keine zulässige UTF-8-Sequenz, so dass der Name der Maus vom Treiber als ungültig eingestuft wurde. Microsoft hat in seinem Bluetooth-Treiber daher eine spezielle Tabelle mit Geräten angelegt, die ihren Namen fehlerhaft melden.
Der Windows-Bluetooth-Stack erkennt problematische Geräte automatisch und ersetzt den jeweiligen Namen anhand der genannten Tabelle, um die Funktionalität der betroffenen Geräte sicherzustellen. Laut Chen enthält die Tabelle aber bis heute nur einen einzigen Eintrag. "Vielen Dank an die Rechtsabteilung, die ein ® in die Beschreibung eingefügt und damit alles durcheinandergebracht hat" , so der Microsoft-Veteran.
Auf die Frage, ob Microsoft die Maus vor dem Release nicht getestet habe, erklärt Chen(öffnet im neuen Fenster) : "Möglicherweise prüft Windows Version N die Zeichenfolge nicht. Das Gerät wird mit einer ungültigen Zeichenfolge ausgeliefert. Das Gerät funktioniert unter Windows Version N, da keine Validierung erfolgt. Windows Version N+1 fügt eine Validierung hinzu, beispielsweise um ein Sicherheitsproblem zu beheben. Nun funktioniert das Gerät nicht mehr. Windows Version N+1 muss also eine Kompatibilitätsumgehung hinzufügen, damit das Gerät wieder funktioniert."