The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Feb 17, 2010
Post comments count 0
Post likes count 1

Happy birthday, Windows 2000, and try not to get too hung over

Raymond Chen

On this date ten years ago, Windows 2000 launched in San Francisco. One of my colleagues was working as a staff member at the Windows 2000 Conference and Expo in San Francisco, an event which accompanied the Windows 2000 launch event. Also working at the event was his boss's boss, and the two shared a hotel room. Their flight back to Redmond wasn't until late in the afternoon, so they decided to spend their last day in San Francisco being tourists in their host city. Hopping on a cable car, walking down the crooked street, seeing the sights in Chinatown and Fisherman's Wharf, all the standard tou...

Feb 16, 2010
Post comments count 0
Post likes count 1

The fundamental rule of rocket science

Raymond Chen

Pretty straightforward.

Feb 16, 2010
Post comments count 0
Post likes count 1

It rather involved being on the other side of this airtight hatchway: Dubious escalation

Raymond Chen

Consider this type of dubious security vulnerability: There is a buffer overflow bug in kernel driver X. To exploit it, call this function with these strange parameters. The exploit works only if you are logged on as administrator, because non-administrators will get . Yes, this is a bug, and yes it needs to be fixed, but it's not a security bug because of that only if you are logged on as an administrator clause. It's another variation of the dubious elevation to administrator vulnerability. After all, if you're already an administrator, then why bother attacking kernel mode in this complicated way? Ju...

Feb 15, 2010
Post comments count 0
Post likes count 1

Advocating the overthrow of the government of the United States by force or subversion

Raymond Chen

It has been widely reported that South Carolina now requires "subversive groups" to register with the Secretary of State (and pay a $5 filing fee). Curiously, the list of organizations which must register include "an organization subject to foreign control." I wonder if this means that all consulates have to register, and that when any foreign dignitary visits South Carolina, they have to pay a $5 filing fee. (Not to mention all foreign-owned companies like Shell Oil.) Actually, it has been pointed out that a "subversive organization" includes one which advocates, teaches, or practices the propriety of contro...

Feb 15, 2010
Post comments count 0
Post likes count 1

Private classes, superclassing, and global subclassing

Raymond Chen

In the suggestion box, A. Skrobov asks why it's impossible to superclass , but the example that follows is not actually superclassing. When I register my own class under this atom, and leave NULL in WNDCLASS.hInstance, Windows fills it in for me. Then I have two distinct classes registered: (0,WC_DIALOG) and (hMyInstance,WC_DIALOG), and DialogBox functions all use the first one. This question is a bit confused, since it says that the goal is to superclass the dialog class, but registering is not superclassing. First, I'll refer everyone to this MSDN article which describes the various ways of manipulati...

Feb 12, 2010
Post comments count 0
Post likes count 0

A decidedly Canadian response to the shambles that was the running portion of the modern pentathlon in Beijing

Raymond Chen

Living so close to the United States-Canada border means that there's a lot of friendly teasing of the many Canadians in our midst. It's a good thing Canadians as a whole seem to have a pretty good sense of humor about it. (Well, except the Quebecers. Those humorless grumps.) The final stage of the modern pentathlon is supposed to be a cross-country course, run through grassy fields, with occasional obstacles like a brook that needs to be hurdled. At the 2008 Olympics in Beijing, however, the course didn't so much resemble a cross-country run as it did waiting in line at Disneyland. Instead of traversing an outd...

Feb 12, 2010
Post comments count 0
Post likes count 1

How do I get information about the target of a symbolic link?

Raymond Chen

Functions like and , when asked to provide information about a symbolic link, returns information about the link itself and not the link destination. If you use the function, you can tell that you have a symbolic link because the file attributes will have the flag set, and the member will contain the special value . Okay, great, so now I know I have a symbolic link, but what if I want information about the link target? For example, I want to know the size of the link target, its last-modified time, and its name. To do this, you open the symbolic link. The I/O manager dereferences the symbolic link and gives...

Feb 11, 2010
Post comments count 0
Post likes count 1

A sense of the term anonymous with which I had previously been unfamiliar

Raymond Chen

I was filling out one of those online satisfaction surveys, and in the introduction, it reassured me that This survey is anonymous. The first question on the survey: Enter the support request (SR) number below. Yeah, because they'll never be able to trace the support request number back to me. (I suspect that the reason for this contradiction is that the organization that wanted to conduct the survey used a site that supports either anonymous surveys or tracked surveys, and they opted for the anonymous survey for whatever reason—maybe it's cheaper?—but they actually wanted a tracked survey, so...

Feb 10, 2010
Post comments count 0
Post likes count 1

Those annoying satisfaction surveys

Raymond Chen

It seems that the United States has gone satisfaction survey mad. You get your oil changed, they ask you to fill out a satisfaction survey. You make a doctor's appointment, they ask you to fill out a satisfaction survey. You call the company technical support phone line, they ask you to fill out a satisfaction survey. These surveys typically ask you to rate how well various aspects of the interaction went, be it how easy it was to make the appointment, how knowledgeable the person who helped you was, how long you had to wait, whether the music in the waiting room was soothing, and what really bothers me is that ...