The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Oct 13, 2026
Post comments count
0
Post likes count
0
C++ futures part 2: The mental model for std::promise, std::packaged_task
Building things out of the state.
Oct 12, 2026
Post comments count
4
Post likes count
0
C++ futures part 1: The mental model
Managing a value that is produced later.
Oct 9, 2026
Post comments count
0
Post likes count
1
One way of thinking about access specifiers in C++/WinRT implementation types
Mapping them to concepts from C# and the now-defunct C++/CX.
Oct 8, 2026
Post comments count
10
Post likes count
3
If one anti-malware software is good, does that make two better?
Not always.
Oct 7, 2026
Post comments count
2
Post likes count
2
How can undefined opcodes ud0 and ud1 have parameters? How undefined were they?
They weren't defined, not even as undefined.
Oct 6, 2026
Post comments count
2
Post likes count
4
Why does the compiler sometimes use ud2 and sometimes int 3 for code that shouldn’t execute?
It shouldn't execute, but for different reasons.
Oct 5, 2026
Post comments count
5
Post likes count
5
If somebody tries to hot-patch an already-hot-patched function, how do they avoid conflicts?
Hot-patching is for Windows, not for you.
Oct 2, 2026
Post comments count
0
Post likes count
2
Why is there no Windows hot-patching support for other architectures like 32-bit ARM and MIPS?
They either predate hot-patching or never needed it.
Oct 1, 2026
Post comments count
0
Post likes count
2
Windows on Itanium also provided for hot-patching, in an even simpler way
Once again, the benefit of fixed-length instructions.