The Old New Thing

When people ask for security holes as features: Silent install of uncertified drivers

Probably the single greatest source of bluescreen crashes in Windows XP is buggy device drivers. Since drivers run in kernel mode, there is no higher authority checking what they're doing. If some user-mode code runs amok and corrupts memory, it's just corrupting its own memory. The process eventually crashes, but the system stays up. On ...

Why is Windows Error Reporting nicknamed “Dr. Watson”?

The nickname for the feature known as Windows Error Reporting is "Dr. Watson". Where did that name come from? As you have probably guessed, The name Dr. Watson was inspired by the character of Dr. Watson, the assistant to Sherlock Holmes in the stories by Arthur Conan Doyle. It is my understanding that the doctor was ...

What is this “web site” thing you are talking about?

One reaction I've seen when people learn about all the compatibility work done in the Windows 95 kernel is to say, Why not add code to the installer wizard [alas, page is now 404] which checks to see if you're installing SimCity and, if so, informs you of a known design flaw, then asks you to visit Electronic Arts' webpage for a patch...

Why does FindFirstFile find short names?

The function matches both the short and long names. This can produce somewhat surprising results. For example, if you ask for "*.htm", this also gives you the file "x.html" since its short name is "X~1.HTM". Why does it bother matching short names? Shouldn't it match only long names? After all, only old 16-bit programs use short names. ...

What is the deal with the ES_OEMCONVERT flag?

The edit control style is a holdover from 16-bit Windows. This ancient MSDN article from the Windows 3.1 SDK describes the flag thus: ES_OEMCONVERT causes text entered into the edit control to be converted from ANSI to OEM and then back to ANSI. This ensures proper character conversion when the application calls the AnsiToOem function to ...

If InitCommonControls doesn’t do anything, why do you have to call it?

One of the problems beginners run into when they start using shell common controls is that they forget to call the function. But if you were to disassemble the function itself, you'll see that it, like the function, doesn't actually do anything. Then why do you need to call it? As with , what's important is not what it performs, but ...

What are SYSTEM_FONT and DEFAULT_GUI_FONT?

Among the things you can get with the function are two fonts called and . What are they? They are fonts nobody uses any more. Back in the old days of Windows 2.0, the font used for dialog boxes was a bitmap font called System. This is the font that retrieves, and it is still the default dialog box font for compatibility reasons. ...

Why are there broadcast-based mechanisms in Windows?

Many Windows information mechanisms are based on message broadcasts, among them DDE, WM_FONTCHANGE, and changes in system settings. Why do these mechanisms use broadcasts, when we know that broadcasts can result in the system grinding to a halt due to windows that have stopped processing messages? Because in 16-bit Windows, you didn't have...