The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Apr 28, 2026
Post comments count
8
Post likes count
0
Developing a cross-process reader/writer lock with limited readers, part 1: A semaphore
A pot of tokens.
Apr 27, 2026
Post comments count
4
Post likes count
1
Looking at consequences of passing too few register parameters to a C function on various architectures
It's bad news no matter how you slice it, but Itanium makes it even worse.
Apr 24, 2026
Post comments count
3
Post likes count
2
Defending against exceptions in a scope_exit RAII type
But maybe it's not worth it.
Apr 23, 2026
Post comments count
12
Post likes count
2
Another crash caused by uninstaller code injection into Explorer
Inadvertently destroying a staircase while standing on it.
Apr 22, 2026
Post comments count
2
Post likes count
3
Mapping the page tables into memory via the page tables
So-called "fractal page mapping".
Apr 21, 2026
Post comments count
30
Post likes count
3
Sure, xor’ing a register with itself is the idiom for zeroing it out, but why not sub?
Somehow xor became the most popular version.
Apr 20, 2026
Post comments count
1
Post likes count
3
How did code handle 24-bit-per-pixel formats when using video cards with bank-switched memory?
You still have to use aligned accesses, even though the pixels might not be aligned.
Apr 17, 2026
Post comments count
1
Post likes count
4
Forgotten message from the past: LB_INITSTORAGE
Preallocating memory to avoid quadratic behavior.
Apr 16, 2026
Post comments count
9
Post likes count
2
What’s up with window message 0x0091? We’re getting it with unexpected parameters
Trespassing on system messages.

