The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Sep 17, 2026
Post comments count 2
Post likes count 1

std::call_once vs. std::async

Raymond Chen

Simple vs complex machinery.

Sep 16, 2026
Post comments count 1
Post likes count 1

Magic statics vs. std::call_once

Raymond Chen

They sort of do the same thing, but differently.

Sep 15, 2026
Post comments count 9
Post likes count 2

Why do Microsoft job levels start in the high 50’s instead of starting at a sane number like 1?

Raymond Chen

It used to start at 1, but that was the old system.

Sep 14, 2026
Post comments count 8
Post likes count 3

Why didn’t Read­Directory­ChangesW provide a way to correlate the two sides of a rename operation?

Raymond Chen

Perhaps it wasn't necessary, or perhaps it didn't occur to them that this a problem.

Sep 11, 2026
Post comments count 5
Post likes count 0

How can I remove the Close button from my window caption?

Raymond Chen

Not through normal means.

Sep 10, 2026
Post comments count 11
Post likes count 6

Why is the x86 undefined instruction called ud2? Why 2?

Raymond Chen

It came after <CODE>ud0</CODE> and <CODE>ud1</CODE>.

Sep 9, 2026
Post comments count 8
Post likes count 8

What algorithm did Windows XP use to choose your initial user picture?

Raymond Chen

It's random, really.

Sep 8, 2026
Post comments count 2
Post likes count 3

A sample use of the winstart.bat file in Windows 95

Raymond Chen

For a driver that needs high resolution mode only in Windows.

Sep 7, 2026
Post comments count 3
Post likes count 1

Why don’t we allow stacks to be sparse, instead of forcing them to be contiguous?

Raymond Chen

Imagining how to report a memory allocation failure for a sparse page.