Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

share|improve this question
    
System Idle Process will always be at 0. Process ID 1 is usually the init process –  Darius Mar 26 '13 at 1:07
5  
Init process only applies to unix-like oses... –  G Koe Mar 26 '13 at 1:49

1 Answer 1

up vote 31 down vote accepted

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

share|improve this answer
5  
Hmm thats interesting, i never realized that all the pids were divisible by 4 –  agz Mar 26 '13 at 7:34
    
sound like they used a pre-multiplied array index for the PID –  ratchet freak Mar 26 '13 at 9:26
    
Still wondering, what about all the PIDs between 4 and 200 ish still? –  agz Sep 8 '13 at 0:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.