The Old New Thing
Practical development throughout the evolution of Windows.
Latest posts
Oct 7, 2026
Post comments count
1
Post likes count
0
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.
Sep 25, 2026
Post comments count
19
Post likes count
5
Debugging walkthrough: Access violation on nonsense instruction, episode 3
Trying to figure out what the interloper was trying to.