The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

A simpler version of the task sequencer that doesn’t promise fairness
Dec 8, 2023
Post comments count 6
Post likes count 2

A simpler version of the task sequencer that doesn’t promise fairness

Raymond Chen
Raymond Chen

Just let a kernel object control the access.

In C++, how can I make a default parameter be the <CODE>this</CODE> pointer of the caller?
Dec 7, 2023
Post comments count 1
Post likes count 1

In C++, how can I make a default parameter be the this pointer of the caller?

Raymond Chen
Raymond Chen

Again, you can't, but you can fake it.

In C++, how can I make a member function default parameter depend on <CODE>this</CODE>?
Dec 6, 2023
Post comments count 2
Post likes count 3

In C++, how can I make a member function default parameter depend on this?

Raymond Chen
Raymond Chen

You can't, but you can fake it.

What was the code name for 64-bit Windows?
Dec 5, 2023
Post comments count 6
Post likes count 7

What was the code name for 64-bit Windows?

Raymond Chen
Raymond Chen

Sundown, which was a hidden jab at the competition.

What is a static chain pointer in the context of calling convention ABI?
Dec 4, 2023
Post comments count 5
Post likes count 3

What is a static chain pointer in the context of calling convention ABI?

Raymond Chen
Raymond Chen

Buried in the System V Application Binary Interface.

Why does the Windows Portable Executable (PE) format have both an import section and input directory?
Dec 1, 2023
Post comments count 6
Post likes count 2

Why does the Windows Portable Executable (PE) format have both an import section and input directory?

Raymond Chen
Raymond Chen

They seem to be the same thing. Do we need both?

Why does the Windows Portable Executable (PE) format have separate tables for import names and import addresses?, part 2
Nov 30, 2023
Post comments count 2
Post likes count 4

Why does the Windows Portable Executable (PE) format have separate tables for import names and import addresses?, part 2

Raymond Chen
Raymond Chen

Keeping read-only data separate from read-write data.

Why does the Windows Portable Executable (PE) format have separate tables for import names and import addresses?, part 1
Nov 29, 2023
Post comments count 6
Post likes count 3

Why does the Windows Portable Executable (PE) format have separate tables for import names and import addresses?, part 1

Raymond Chen
Raymond Chen

Even though their lifetimes don't overlap, you sometimes need to go back in time.

A reported vulnerability about getting paid apps for free is really about paying for free apps
Nov 28, 2023
Post comments count 8
Post likes count 2

A reported vulnerability about getting paid apps for free is really about paying for free apps

Raymond Chen
Raymond Chen

Try shopping around.