Відповіді:
Ідентифікатор процесу 1,2 або 3 не існує через те, як працює таблиця обробки ядер NT.
Ручки завжди кратні чотирма. Об'єкт процесу керування Kernel використовується як для ручок процесу, так і для ідентифікаторів процесу / потоку. Буває так, що значення обробки починаються з 0x4 (біт 2) , а InitialSystemProcess - це перший процес, який створюється, тому він отримує PID 4. Процес очікування не є насправді процесом, і ви не можете його відкрити. Він, ймовірно, не має справжнього PID, але більшість інструментів вважають його 0.
Більше про таблицю обробки NT тут, хоча це точно лише для NT3-5 (xp), оскільки Windows 7 вимагає, щоб ви посилалися лише на ручки ядра, якщо їх додано до PsInitialSystemProcess.
Більше про обмеження для Windows 7/8 Handle від Марка Русиновича