The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

DLL forwarding is not the same as delay-loading
Feb 4, 2008
Post comments count 0
Post likes count 0

DLL forwarding is not the same as delay-loading

Raymond Chen
Raymond Chen

As I noted earlier, when you create a forwarder entry in an export table, the corresponding target DLL is not loaded until somebody links to the forwarder entry. It looks like some people misread this statement to suggest some sort of delay-loading so I'm going to state it again with an example in mind in the hopes of clearing up any confusion (and risking creating more confusion than I clear up). Suppose that you have a DLL called that has a forwarder entry to : This specifies that if somebody wants the function from , they will actually get the function from . The delay-load-like behavior is that is...

Pass the whipped partially hydrogenated soybean and coconut oils, please
Feb 1, 2008
Post comments count 0
Post likes count 0

Pass the whipped partially hydrogenated soybean and coconut oils, please

Raymond Chen
Raymond Chen

Kraft "guacamole" contains almost no avocado, preferring instead to use whipped partially hydrogenated soybean and coconut oils, corn syrup, whey, and food starch. (Avocado shows up in the "contains less than 2% of..." section.) "We think customers understand that it isn't made from avocado," said Claire Regan, Kraft Foods' vice president of corporate affairs. Way to go, there, Claire, setting high standards for your company. "We think customers understand that none of our food actually is what it purports to be." Maybe that explains Velveeta. The linked article reminds us that guacamole is a popular dish o...

Strange bug assignment: Programs are using too much memory
Feb 1, 2008
Post comments count 0
Post likes count 0

Strange bug assignment: Programs are using too much memory

Raymond Chen
Raymond Chen

My office is in the same hallway as the programmer and program manager responsible for the Processes tab in Task Manager. (Of course, they are responsible for a bunch of other stuff too; it's not like 100% of their days are dedicated to Task Manager!) I happened to be passing by just as this particular bug popped up on their radar. It went something like this: Problem: Task Manager reporting programs are using too much memory Steps to reproduce: Result: The numbers are too big! Expected result: Less memory usage. Apparently, it's Task Manager's fault that other programs are using lots of memory. May...

The dead home desktop problem returns
Jan 31, 2008
Post comments count 0
Post likes count 0

The dead home desktop problem returns

Raymond Chen
Raymond Chen

The computer I bought not a year and a half ago decided to keel over last week. When I push the power button, the power light goes on, the drives spin up, but there is nothing out the video card and not even a reassuring beep from the power-on self test. I've disconnected all the external peripherals as well as all the IDE devices, and no change. The problem might be a fried motherboard connection or something. I'm not a hardware person, so I'm not sure how to diagnose it. This is easily the shortest life for a computer I've owned (not counting the ones that were dead on arrival). I feel kind of bad buying a re...

Shell policy is not the same as security
Jan 31, 2008
Post comments count 0
Post likes count 0

Shell policy is not the same as security

Raymond Chen
Raymond Chen

Mark Russinovich pointed out that if you let users run arbitrary programs, they can circumvent policies. This is actually not surprising, because policy is not the same as security. Shell policies control how Explorer and other shell components behave, but that's just blocking the front door. For example, there is a shell policy to prevent the user from changing the wallpaper from the Desktop control panel. This disables the controls on the Desktop control panel for changing the wallpaper, but there are ways to change the wallpaper other than that. If users can run an arbitrary program, then they can run a prog...

Even without a nitpicker's corner, I have to worry about nitpickers
Jan 30, 2008
Post comments count 0
Post likes count 0

Even without a nitpicker's corner, I have to worry about nitpickers

Raymond Chen
Raymond Chen

Even without a nitpicker's corner, I have to worry about nitpickers. I just have to do it in a more subtle way. Here are some examples of changes I've made to upcoming entries in order to forestall nitpicking: What's scary is that I've noticed that I begun pre-emptively nitpicking my own entries while I'm writing them. In the balance between writing something that reads more naturally and something that is more resiliant to nitpicking, I've unfortunately started preferring the latter. Observant readers may have noticed that I've slowly introduced a section called "Pre-emptive snarky comment" wherein I try to ...

Microspeak: Housing
Jan 30, 2008
Post comments count 0
Post likes count 0

Microspeak: Housing

Raymond Chen
Raymond Chen

The real estate department at Microsoft has their own weird jargon. In the real estate world, you don't "work" in a building; you are "housed" there. Here are a few citations. The new buildings will be able to house N workers. Employees housed at Facility X will be able to use temporary parking spaces being constructed at Location Y.

The history of the Windows XP common controls
Jan 29, 2008
Post comments count 0
Post likes count 0

The history of the Windows XP common controls

Raymond Chen
Raymond Chen

Stepping forward while looking back.

Crackpots in computer security: Don't plug it in, man!
Jan 28, 2008
Post comments count 0
Post likes count 0

Crackpots in computer security: Don't plug it in, man!

Raymond Chen
Raymond Chen

Some time a few years ago, some folks on the security team were swapping crackpots stories, and this one somehow lodged in my mind. The story below is paraphrased, but the essense remains intact. "We had a crazy guy call into the security support line many years ago. He was going through a messy divorce and was convinced that his wife's lawyers were hacking into his computer in order to frame him, thereby gaining the upper hand during divorce proceedings. He wanted to know how to protect his computer against them. We played along and told him to keep the computer unplugged from the Internet, and he laughed a tr...