News: 1763040608

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

To solve compatibility issues, Microsoft would quietly patch other people's code

(2025/11/13)


How to get that all-important piece of software working on Windows has vexed Microsoft since the beginning of the operating system. Compatibility was king.

Things were simpler in the days of Windows 3.1. It was up to the user to tell the system which application was which in the event they shared a filename. Veteran Microsoft engineer Raymond Chen [1]gave the example of C:\MAIL\MAIL.EXE . Perhaps it was Microsoft Mail? Or maybe it was cc:Mail for MS-DOS?

The APPS.INF told Windows what to do with the application, but it was up to the user to differentiate apps that shared the same filename. Simpler times indeed.

[2]

Windows 95, however, dialed things up quite a bit with its application compatibility database. The behavior of the operating system could be altered based on compatibility flags, and Microsoft went so far as to automatically patch programs where a simple operating system tweak wouldn't address a deep-seated problem.

[3]

[4]

Patching someone else's code is inherently risky. Chen [5]said : "Out of safety, the Windows 95 team got written permission from the vendor whenever they needed to patch a program."

"The consultation included detailed information on what the problem was and how it was going to be patched. In exchange, the team requested information from the vendor on what versions of their product are affected (and if they could send those versions for analysis), as well as a promise to fix the problem in their next version, because the next version won't have the benefit of the patch."

[6]

But how to spot an application for which a patch is available? Rather than rely on the user to tell the operating system what a given file was, Windows 95 used detection strings stored in the Registry. When a 16-bit module was loaded, targeting a version of Windows earlier than 4.0, the kernel tried every detection string to see if one was triggered.

[7]The CAPITAL LETTERS trick that helped merge Windows 95 into NT

[8]Microsoft finance slang defines the eternal optimist: The 'hockey stick on wheels'

[9]Microsoft's ancient icon library still lurks deep within Windows 11

[10]Microsoft veteran explains Windows quirk that made videos play in Paint

The strings weren't straightforward checksums. Instead, the string was decoded into bytes, with the first being the match algorithm, which dictated what came next. "In practice, you tend to see a lot of file size matches," said Chen.

"Conversely, you are unlikely to see many file contents matches because those incur additional I/O and are therefore more expensive."

Chen noted that while there was eventually a tool to build the detection strings, earlier incarnations had to be written by hand.

"If a match is found," explained Chen, "the subkeys indicate the segments to patch, and the values of those subkeys are binary data providing the patch to apply."

[11]

"The names of the values are not significant, but traditionally 'Add' patches are named Add and 'Change' patches are named Change. If there is more than one Add or Replace patch, tradition dictates that they are given numeric suffixes to distinguish them."

Microsoft's focus on backward compatibility is often cited as a major factor in its success at the end of the 20th century and the beginning of the 21st.

An interesting thought experiment is what engineers from the Windows 95 era would make of the hundreds of millions of devices that were suddenly made obsolete with the end of Windows 10 support. ®

Get our [12]Tech Resources



[1] https://devblogs.microsoft.com/oldnewthing/20251110-00/?p=111779

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aRYOp_-r-wH-ONwjRnUD7QAAABU&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aRYOp_-r-wH-ONwjRnUD7QAAABU&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aRYOp_-r-wH-ONwjRnUD7QAAABU&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[5] https://devblogs.microsoft.com/oldnewthing/20251111-00/?p=111781

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aRYOp_-r-wH-ONwjRnUD7QAAABU&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[7] https://www.theregister.com/2025/10/29/chen_windows_95_sizeof/

[8] https://www.theregister.com/2025/10/23/microsoft_hockey_stick_wheels/

[9] https://www.theregister.com/2025/10/21/windows_pifmgr_chen/

[10] https://www.theregister.com/2025/10/15/windows_paint_video_chen/

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aRYOp_-r-wH-ONwjRnUD7QAAABU&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[12] https://whitepapers.theregister.com/



stewrogers

I wonder would they have a go at patching winsqlite3.dll used in a couple of built in apps in Windows 11, just for old times sake.

SVD_NL

Maybe updating OpenSSL included in various built-in apps and Office plugins would be a good start first, especially considering their own security solution detects the outdated binaries and tells me to do something about it!

I'd love to, but i don't think i can get the removal of the office suite through change management.

I remember

DarkwavePunk

There was a certain game that had a hard coded hack in the OS to make it run on 95. My brain wants to say CivII or Sim City, but memory has failed me

Of course not!

nematoad

"Out of safety, the Windows 95 team got written permission from the vendor whenever they needed to patch a program."

Not to mention common courtesy.

You don't go messing about with other peoples' stuff without asking, do you MS?

Just asking for a friend who wonders why her preferences keep being reset every time MS emits patch or update.

Re: Of course not!

Zakspade

Lucky friend! My Windows kept resetting preferences and file associations after every time I closed the lid and lifted it...

I solved the problem by no longer using Windows. My wife stayed with it and is now using Windows 11. She wonders why I just get on and use my computer and she has to play games to get things to print properly, or save files on our home network without error messages galore, or she keeps being asked to enable this, that or the other after she has turned them off to stop them nagging her...

What is a filename?

AustinTX

I guess I would just treat the whole path as part of the filename, unless every email app under the sun insisted on grabbing C:\MAIL\MAIL.EXE hurr durr.

Tubz

Windows 95 coders wouldn't call Windows 10/11 coders as they are incompatible pussies and they also don't talk to BOTS !

Compatibility?

SomeRandom1

No way Microsoft would endeavour to patch others code these days. They can't even keep printers working between versions of Windows.

A soft answer turneth away wrath; but grievous words stir up anger.
-- Proverbs 15:1