The Register Home Page

back to article Why Microsoft has the name of an old mouse hidden in its Bluetooth drivers

Lurking within the Windows Bluetooth stack is a hardcoded reference to the Microsoft Wireless Notebook Presenter Mouse 8000. Is this nostalgic favoritism from Microsoft? Or is it just somebody, somewhere, making a mistake that an engineer had to work around? Old man using computer The 12 KB that Windows just can't seem to …

  1. Paul Herber Silver badge
    Facepalm

    Of all the outfits in all the world why is it only Microsoft who are unable to read and follow specifications created by Microsoft?

    1. Anonymous Coward
      Anonymous Coward

      ...only Microsoft...

      Personally, I've worked for a few outfits that failed to follow the Microsoft specifications/guidelines. As a result, the application software was prone to failing with new versions of Windows. Obviously, they blamed Micros~1.

      I feel the need to add that I wasn't directly involved.

      1. Yet Another Anonymous coward Silver badge

        What car maker had an entertainment system that bricked itself if you listened to "99% Invisible" or the radio station had a thumbnail image without an extension

        1. goblinski Silver badge

          Honda and Mazda wasn't it ?

        2. MachDiamond Silver badge

          "What car maker had an entertainment system that bricked itself if you listened to "99% Invisible" or the radio station had a thumbnail image without an extension"

          It's probably several. Entertainment systems have been outsourced for ages.

      2. gnasher729

        It’s not just Microsoft. When Apple released MacOS 10.4.10 it turned out that lots of software assumed this was between 10.4.1 and 10.4.2, so software that required say 10.4.6 at least got the test wrong and refused to run.

    2. Darkedge

      Not the first time

      and not the last. Licencing reporting using SCCM was always fun as MS couldn't decide what to call themselves seemingly from month to month in the company name for any particular . Horrible mess of different company names all of them Microsoft! Unsurprisingly they ditched the data feed used to make that work well in the end probably because 80% plus was their own different company names and they knew more were coming..

      1. Outski

        Re: Not the first time

        Not to mention Outlook relying on timezone description rater than timezone rules for appointments, leading to appointments showing up offset by an hour

      2. MachDiamond Silver badge

        Re: Not the first time

        "Horrible mess of different company names all of them Microsoft! "

        If your product has a common name such as "office", that can't be trademarked while "Microsoft Office" can.

      3. An_Old_Dog Silver badge

        Names: Not the first time

        • Code bloat is partially due programs having to deal with a very messy and non-orthigonal external world.

        • Microsoft did the Right Thing in how they implemented their fix. If they had not used a lookup table, then sure as a stink in a spacesuit:

        (a) the fix would have been hard-coded in an if ... then-type statement;

        (b) there would have been additional entries;

        (c) some intern would have incorporated the additional entries as an ugly, extended if ... then ... else if ... then ... else if ...-type statement. Maybe they would have converted it to a case ... of-type statement. Maybe.

        • The Many Names of Microsoft problem is a human-politics problem in no way specific to Microsoft. It happens when ego-prioritised people decide to "make their mark" or "display their power". When a pissing match happens, you get many different name versions, in many different places.

        It's the same sort of thing as when an office building is painted yellow inside in some (usually contiguous) areas, and blue in other (usually contiguous) areas.

    3. doublelayer Silver badge

      What specification created by Microsoft would that be? The requirement that Bluetooth device names be UTF-8 encoded is Bluetooth SIG's. The people who made the Microsoft mouse did make a mistake, but not on their own specification.

      They are far from the only place to have done this. About two months ago, I was dealing with a similar problem where a device would refuse to connect to WiFi networks whose names weren't only using ASCII characters. WiFi SSIDs can be any bytes (up to the length limit), there's a flag to tell devices to interpret that as UTF-8, but whether valid UTF-8 or not, this device refused to connect. I'm not sure what part had that failure. The UI components available to me as a user didn't seem to have a problem displaying the name, but something in the stack was refusing to do it. That means either the manufacturer's own code wasn't handling this properly or the embedded Linux WiFi library they used had this problem. Those requirements have been part of WiFi since the beginning (non-ASCII bytes) or for fourteen years (UTF-8 flag), and yet, there's not total compatibility. Character encoding breaks far more than Microsoft stuff.

      1. Paul Herber Silver badge

        Their own specification that the device would be identified with a text string containing a character not allowed within the Bluetooth spec. Somebody at MS would have decided that.

        1. doublelayer Silver badge

          I don't think that's what specification means. The people building the mouse did fail to follow the Bluetooth spec, which did not allow for the name they chose to broadcast. Their having chosen the name didn't make a specification, just a mistake. If it did somehow, Windows does follow it by means of this lookup table. Either way, anything they created, they do follow.

  2. b0llchit Silver badge
    FAIL

    Crud begets Crud

    The first crud is not doing correct utf-8 validation. The second crud is to work around the first crud. Multiply this by <large_number> and you get the current state (of much software).

    This reminds of the mistake in "send conservatively, accept graciously". If all send conservatively, then you don't need to be gracious in accepting stuff.

    1. Wally Dug

      Re: Crud begets Crud

      I don't know how accurate this is, but I remember reading maybe 20-25 years ago that Microsoft didn't bother trying to find and correct the root cause of bugs, they simply programmed a check for the issue and then it could fork off and follow the workaround before resuming what you were doing in the first place.

      1. Yet Another Anonymous coward Silver badge

        Re: Crud begets Crud

        It's most of Raymond Chen's blog, but it's mostly programming around bugs in applications.

        If an application had a bug but happened to work on a particular build they had to code for the bug so it would continue to work on new versions of Windows, otherwise MSFT would be planned if your app failed after an upgrade

        1. J. Cook

          Re: Crud begets Crud

          ... Oh, kind of like a handful of apps that refuse to work on windows 11, but worked fine in windows 10? Or stuff that worked just fine and dandy in windows 7, but just stopped working or started working really poorly under windows 10 despite it being compatible?

          (I won't get into the utter train wreck that is the audio subsystem with windows 10 and 11, only to say that there's a reason why I have a five channel analog mixer on my desk with an analog mic with the entire mess being output into the line-in jack on the machine...)

          There's only been three real paradigm shifts with MS on the desktop side:

          9x to XP (dropped the old kernel for the NT kernel)

          XP to windows 7/8.1 (the former is debatable, but the latter was a major enough shift)

          windows 7 to windows 10 (massive UI changes)

          Server OS has a couple more:

          NT 3.51 to NT 4.0 (UI, much better kernel)

          4.0 to win2K (properUSB support and Active Directory)

          windows 2003 to 2008 (major UI overhaul)

          2008 R2 to 2012 R2 (Another major UI overhaul)

          2012R2 to 2016 ( (akin to the windows 7 to 10 move)

          There's been a slow decline with versions past 2016, mostly in that it's being shifted into a cloud endpoint, and of course AI being threaded through all of it, regardless if it needs it or not.

          I'm honestly not sure what server 2024 is gonna look like, we've not deployed it here as 2022 is still under full support and will be for a while, even if the windows 10 (which it shares code with) is being EOL'd.

          1. Jou (Mxyzptlk) Silver badge

            Re: Crud begets Crud

            > 2008 R2 to 2012 R2 (Another major UI overhaul)

            That is the Windows 7 to Windows 8.1 move (8.0 skipped? Server 2012)? UI messed up, but below the UI a HUGE amount of very good innovations, which are not as visible though (literally).

            > 2012R2 to 2016 ( (akin to the windows 7 to 10 move)

            That was Windows 8.1 to Windows 10, not 7 to 10.

            > I'm honestly not sure what server 2024 is gonna look like

            I know, it is called Server 2025, released end of 2024, and looks like Windows 11 24h2 - and shares quite a number of bugs with it + adds more bugs for server specific stuff. Man that is a weird server version.

            Server 2019 is up to now the most solid. Server 2022 ist quite good, but the improvements and some "Won'tfix" bugs are keeping each other in check. And still has the classic Win10 UI.

      2. MachDiamond Silver badge

        Re: Crud begets Crud

        "I don't know how accurate this is, but I remember reading maybe 20-25 years ago that Microsoft didn't bother trying to find and correct the root cause of bugs, they simply programmed a check for the issue and then it could fork off and follow the workaround before resuming what you were doing in the first place."

        I've found that sometimes I have to admit I've gone warp speed into a dead end alley and the only way out is to back up and start again. Plenty of companies won't do that and will instead build scaffolding at the dead end to go up and over. I remember a product I was working on just fell short of hitting the specs I needed for it to be sold into a particular market. I tweaked it here and there and just couldn't get over the hump. Rather and put anymore time into fixing it, I took what I learned and had a new design ready to prototype the next day. My investor wasn't happy, but other things were stacking up on my plate and I didn't have high confidence I would or could solve the issue in the next day or so. I wrote up a BOM and ordered parts to get a test article built. That iteration was the one we would up putting into production so it took more calendar time, but less of my time.

    2. Dan 55 Silver badge

      Re: Crud begets Crud

      This reminds of the mistake in "send conservatively, accept graciously". If all send conservatively, then you don't need to be gracious in accepting stuff.

      I'm not sure why they couldn't generalise the fix and, if the utf-8 is invalid, parse the string as if it were Windows-1252 and if that doesn't work (unprintable characters), perhaps make a string from the VID and PID.

      1. MonkeyJuice Silver badge

        Re: Crud begets Crud

        Don't forget- for years Microsoft would accept overlong utf-8 strings, leading to trivial directory traversal attacks and other IIS nonsense. Accepting graciously is not a strategy you want to employ in the age of the internet. It's far too easy to invent exciting new edge cases that will lead to security issues. The better approach would be to have checked that a field who's domain is supposed to be utf-8 was, in fact, utf-8.

        Of course all of this is irrelevant because Microsoft are involved, so thought or consistency need not apply.

        1. Dan 55 Silver badge

          Re: Crud begets Crud

          Accepting graciously is not a strategy you want to employ in the age of the internet.

          It's what's driven RFCs since time immemorial (1969-04-07).

  3. Anonymous Coward
    Anonymous Coward

    Junior: I'm trying to fix a problem with the Bluetooth driver.

    Senior: Ah yes, I had that problem back in the day, let me find the function that fixed it. You see the problem was...

    Junior: Cool, cool...can you send me the function?

    Senior: Here it is.

    Junior: Sweet. I'll try it out. *ChatGPT can you make this function work with my code? && copy/paste && git add . && git commit -m "added function to fix ticket #2943234"*

  4. Anonymous Coward
    Anonymous Coward

    Of course some stubborn developer refused to work in UTF-8 - "Why should I use this newfangled Unicode thing, while all we neeed is good old ANSI? Those foreigners are bad! I've heard it on TV!".

    1. blu3b3rry Silver badge
      Facepalm

      Its a bit like using metric makes you a communist or something.

      1. Anonymous Coward
        Anonymous Coward

        "using metric makes you a communist"

        You cannot win that argument with murkcans. "Name a single communist country (past or present) that doesn't use metric." See !

        The fact that the only country that persists in using customary units is Murkia is inconvenient and so is irrelevant.

        Amusingly even in that benighted land 1 inch is defined as 2.54cm [exact] and thus ΔνCs

        1. Spazturtle Silver badge

          Re: "using metric makes you a communist"

          They only standardised the foot in 2023, previously you would use a foot equivalent to 30.48cm for objects and a foot equivalent to 30.480061cm for land.

          1. The_H

            Re: "using metric makes you a communist"

            I think it was the BBC whose television studios at the now (irrationally mostly demolished) TV Centre in West London were marked out in "metric feet" - i.e. the grid was on 30cm centres, not 12"

        2. Yet Another Anonymous coward Silver badge

          Re: "using metric makes you a communist"

          >The fact that the only country that persists in using customary units is Murkia

          And the global technology powerhouse of Myanmar

          1. James O'Shea Silver badge

            Re: "using metric makes you a communist"

            I blame Mother England., For both. Damn Sassenach.

            To be sure, if I were offered the choice of Jughead Saxe-Coburg-Gotha or The Orange One, I'd go with Jughead every time, but he's not on offer over here. Pity, that. And he's not really Sassenach, being German with some Danish by way of Greece. Now, if he'd show some Teutonic efficiency and get rid of a certain Prime Minister, thereby Making Britain Great Again, I'd really want him to take over over here. That's not likely to happen. Really great pity.

            Memo to UKans: would you consider a trade, straight up, you take The Orange One, we take Jughead? Please?

            Exits, to "Charlie, He's My Darling".

            1. RockBurner Silver badge

              Re: "using metric makes you a communist"

              On behalf of we in the UK:

              Not on your nelly!

              1. MonkeyJuice Silver badge

                Re: "using metric makes you a communist"

                Excuse me, we sell beer in pints, and wood in imperial lengths and metric cross sections. We measure distance in meters until you get into a car. Weight is metric, unless you are weighing humans or livestock.

                We are a terrible country for this. Pretty much anywhere else on the planet at least bothers to use SI units correctly... Except the land of the free, of course.

            2. Anonymous Coward
              Anonymous Coward

              Re: "using metric makes you a communist"

              Why bother trading? Just re-join the commonwealth.

              Canadians, if they rejoin, will you watch them for us? It's just you're already over there and we trust you'd do a good job.

            3. Doctor Syntax Silver badge

              Re: "using metric makes you a communist"

              I can't think of any of the alternatives who'd make Britain Great Again. And certainly not the barfly.

            4. Yet Another Anonymous coward Silver badge

              Re: "using metric makes you a communist"

              They don't have to actually take Jugears III

              The nice thing about royalty is that they are self pollinating. We have lots of spare heirs that you can have (no, not that one)

        3. that one in the corner Silver badge

          Re: "using metric makes you a communist"

          I understand that Belize is transitioning away from Imperial to Metric units.

          Which is a shame, at least from the p.o.v. of some of my code, where you are expected to select Belize to get Imperial and mm/dd/yyyy* used in messages :-)

          * Yes, I know it isn't supposed to be, officially, but it isn't totally unknown - that is good enough for this purpose; certainly haven't had any complaints from Belize about this; from colleagues in the UK, yes, after they've exhausted just rolling their eyes at me...

        4. spuck

          Re: "using metric makes you a communist"

          So, you're no longer ordering in pints on the right side of the pond?

          1. James O'Shea Silver badge

            Re: "using metric makes you a communist"

            Anyone who dared to attempt to abolish The Great British Pint would be first against the wall come the revolution... and the revolution would arrive within the hour. Get not between the Sassenach and his pint. Or his tea.

    2. Elongated Muskrat Silver badge

      Could be worse; it could be EBCDIC (but we're not going to tell you which EBCDIC).

      IYKYK

      1. aks

        I grew up on BCD and its many EBCDIC children and have fond memories of cross-relating them, including the various ASCII and ANSI children. After extending this mapping to the much larger issues of Asian encodings, I was well on the way to building my own Unicode database before discovering it had been standardised.

        Armed with these tools and mindset, this kept me happily employed for a decade or two.

        Happy days.

  5. frankvw Silver badge

    Eh?

    OK. So Windows 11 won't run on perfectly good PCs in half the cases due to arbitrary hardware requirements that nobody really wants or needs, but 20 year old crud in a driver must be maintained to support a flakey Microsoft mouse from 2006???

    Huh...

    1. Aladdin Sane Silver badge

      Re: Eh?

      There's probably an exec that still has that device and has enough pull to keep the workaround in. Also, Microsoft famously keeps crap in for legacy reasons, such as the 1900 leap year bug.

      1. Chris Evans

        Re: Eh?

        More probably no one has been tasked with tidying it up. Also tidying up often has unintended consequences.

    2. Doctor Syntax Silver badge

      Re: Eh?

      "Windows 11 won't run on perfectly good PCs in half the cases due to arbitrary hardware requirements that nobody really wants or needs,"

      This is a common misunderstanding. You have to look at it from Microsoft's PoV. The only good hardware is either brand new being shipped with a new OEM Windows licence of hardware or hardware that must be replaced by .... a new OEM Windows licence. If your old hardware running W10 can be updated FoC to W11 it is most certainly not good and must be made bad.

      There is, however, a slight problem if you suddenly make a PC that was bought new with a W10 licence last week turn bad. It's called Class Action. The solution to that is to make the arbitrary requirement a piece of hardware introduced long enough ago to avoid the class action but recently enough to turn all the older bad hardware good, i.e. in need of replacement.

      It is, therefore, quite inaccurate to describe it as something nobody reall wants or needs. Microsoft really, really wants and needs it.

      1. Pascal Monett Silver badge

        Re: You have to look at it from Microsoft's PoV

        I really, really don't care about Borkzill's point of view.

        Unfortunately, there's nothing I can do about it.

        Not until I'm a zillionnaire anyway . . .

        1. Doctor Syntax Silver badge

          Re: You have to look at it from Microsoft's PoV

          Your misfortune is that Borkzilla's a lot bigger than you so what you care about doesn't register with them. They should have been broken up long ago.

      2. Strahd Ivarius Silver badge
        Coat

        Re: Eh?

        Class Action?

        Didn't find it under Computer\HKEY_CLASSES_ROOT

  6. PerlyKing
    Windows

    Re: "That table," concludes Chen, "currently has only one entry."

    Because Microsoft only care about supporting their own hardware? Or because nobody else is dumb enough to use dodgy characters in their device names? Why not both?!

    1. Yet Another Anonymous coward Silver badge

      Re: "That table," concludes Chen, "currently has only one entry."

      Given the number of expensive bits of lab equipment who reported themselves as a "parallel printer" because somebody had copied the 1st example in the MSFT device driver development kit.

      I think the programmer was justified in assuming other makers would have put illegal characters in names.

      The reason they didn't is probably that nobody bothered to change the default string

  7. smudge
    Windows

    Why Microsoft has the name of an old mouse hidden in its Bluetooth drivers

    Surprised it's not "Mickey".

    1. Apocalypso - a cheery end to the world
      Joke

      Re: Why Microsoft has the name of an old mouse hidden in its Bluetooth drivers

      > Surprised it's not "Mickey".

      If that were the case then the problem char would be © not ®.

    2. James O'Shea Silver badge

      Re: Why Microsoft has the name of an old mouse hidden in its Bluetooth drivers

      Walt would have been upset. Walt's lawyers are famously even more to be feared than even Apple's.

      1. The commentard formerly known as Mister_C

        Re: Why Microsoft has the name of an old mouse hidden in its Bluetooth drivers

        Unless you are a Norwegian desk lamp company

        https://www.theregister.com/2009/09/11/disney_pixar_trade_mark

  8. Anonymous Coward
    Anonymous Coward

    Microsoft Reg U.S. Pat & TM Off. ...

    would have satisified 15 U.S. Code § 1111 in pure 7 bit ascii in lieu of Mircosoft ®.

    Could have been worse, the name could have been in utf-16.

  9. Edwin

    I had one

    Greatest travel mouse I ever owned, right up until I dropped it on a tile floor.

    I've had a variety of mice since, but none of them came close in terms of usability.

  10. xanadu42
    Facepalm

    And that's why there was no Windows 9...

  11. Marty McFly Silver badge
    Linux

    Explains a lot....

    ...like why Windows is a multi-gigabyte install that used to fit on a CD (or even a stack of floppy discs).

    ...like why Windows is so vulnerable to attack - when was the last time this 2006 code was checked for security?

    ...like why Windows is a dog with fleas even on the latest hardware.

    Yeah, pick the Penguin.

    1. GNU Enjoyer
      Angel

      Re: Explains a lot....

      Nah - you won't get a computer that even boots - pick the GNU; https://www.gnu.org/distros/free-distros.html

  12. DS999 Silver badge
    Devil

    Its the trifecta!

    You can blame it on lawyers, on Microsoft, and on shitty developers!

  13. MachDiamond Silver badge

    Standards 101

    "AE gives the location of the ® symbol in the legacy Windows 1252 code page, but UTF-8 is a rather different beast."

    There's a really good reason why there are standards for things and why adhering to them is vitally important. It's real show of how bad a company is if they don't even abide by their own in-house non-standards.

    One of my mini collections I started when I got into aerospace is company engineering standards books from big engineering firms. Companies such as Lockheed and North American Aviation would publish physical guides on wiring practices and color codes, Callouts on drawings (most now adhere to ANSI/ISO standards and have a short list of specific things that aren't otherwise defined). There's lists of materials approved for specific applications. Even if the outside world was doing something different, they all needed their internal documents to be uniform. They also wanted to make sure that materials that might be used in something like a LOX application were compatible so some Jr engineer who didn't have experience with it could look up what can and can't be used.

  14. William Higinbotham

    I heard that if one uses Disney Mickey or Minnie Wireless Bluetooth Mouse, Goofy things happen.

  15. Lee D Silver badge

    You only have to browse the Linux device driver's code to realise:

    So much shite only works in extremely specific circumstances, and so many things require quirks, workarounds, to pretend that you're Windows, to do things in a very particular order, identifies as another device entirely, has the same model/serial as something else that clashes, etc. etc. etc.

    So little hardware actually complies to the specification that for some class devices (especially anything widely available and cheap like HID mice), there are often more workarounds than there are compliant devices.

    And it applies to everything from plug in USB mice, to Bluetooth devices, to PCIe cards and even mainboard chipsets.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like