The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Oct 8, 2026
Post comments count
1
Post likes count
1
If one anti-malware software is good, does that make two better?
Not always.
Oct 7, 2026
Post comments count
2
Post likes count
1
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
2
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
4
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.
Sep 30, 2026
Post comments count
4
Post likes count
2
Windows on AArch64 also provides for hot-patching, but it’s much simpler than on x86
Fixed-length instructions makes it a much easier task.
Sep 29, 2026
Post comments count
4
Post likes count
2
As a general rule, calling product support while drunk is not recommended
Swearing is also poor form.
Sep 28, 2026
Post comments count
5
Post likes count
3
C++ reminder: Function-local static variables are initialized only once, even if it looks like they get initialized multiple times
Only on first execution.