The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Oct 8, 2026
Post comments count 5
Post likes count 1

If one anti-malware software is good, does that make two better?

Raymond Chen

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?

Raymond Chen

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?

Raymond Chen

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?

Raymond Chen

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?

Raymond Chen

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

Raymond Chen

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

Raymond Chen

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

Raymond Chen

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

Raymond Chen

Only on first execution.