What processes, if any, exist between PIDs 0 and 4 on Windows 7?

21

5

Just out of curiosity what are the processes between 0 and 4, and also between 4 and 200 something. enter image description here

agz

Posted 2013-03-26T00:22:51.783

Reputation: 6 820

System Idle Process will always be at 0. Process ID 1 is usually the init process – Darius – 2013-03-26T01:07:28.613

5Init process only applies to unix-like oses... – G Koe – 2013-03-26T01:49:35.503

Answers

34

There is no Process ID 1,2,or3 because of how the NT kernel handle table works.

Handles are always multiples of four. The Kernel handle process object is used for both process handles and process/thread IDs. It happens that handle values all start at 0x4 (bit 2), and the InitialSystemProcess is the first process to be created, so it gets a PID of 4. Idle process isn't actually a process and you can't open it. It probably doesn't have a real PID but most tools consider it to be 0.

More on the NT handle table here although this is only accurate for NT3-5(xp) , as Windows 7 now requires that you only reference kernel handles if attached to PsInitialSystemProcess.

More on Windows 7/8 Handle limits from Mark Russinovich

More on the "multiples of four" in PIDs

G Koe

Posted 2013-03-26T00:22:51.783

Reputation: 4 333

@agz: The numbers between 4 and 200-ish (and many more) are in semi-permanent use by threads in the so-called System process. Process and thread IDs (generically called "client IDs") come from the same "number space". You can see thread IDs in Process Explorer: Double-click on a process, then look at the Threads tab in the resulting "Properties" window. – Jamie Hanrahan – 2015-04-25T21:18:57.140

6Hmm thats interesting, i never realized that all the pids were divisible by 4 – agz – 2013-03-26T07:34:25.037

sound like they used a pre-multiplied array index for the PID – ratchet freak – 2013-03-26T09:26:20.223

Still wondering, what about all the PIDs between 4 and 200 ish still? – agz – 2013-09-08T00:08:55.640

0

you can see all of that processes between 4 and 200 and many more in the Process Explorer System process - properties - threads pane.

homer

Posted 2013-03-26T00:22:51.783

Reputation: 1