Jakie ewentualne procesy istnieją między PID 0 i 4 w systemie Windows 7?

Odpowiedzi:

34

Nie ma identyfikatora procesu 1,2 lub 3 z powodu sposobu działania tabeli uchwytów jądra NT.

Uchwyty są zawsze wielokrotnościami czterech. Obiekt procesu uchwytu jądra jest używany zarówno dla uchwytów procesów, jak i identyfikatorów procesów / wątków. Zdarza się, że wszystkie wartości uchwytów zaczynają się od 0x4 (bit 2) , a InitialSystemProcess jest pierwszym procesem, który ma zostać utworzony, więc otrzymuje PID równy 4. Bezczynny proces nie jest tak naprawdę procesem i nie można go otworzyć. Prawdopodobnie nie ma prawdziwego PID, ale większość narzędzi uważa go za 0.

Więcej na temat tabeli uchwytów NT tutaj, chociaż jest to dokładne tylko dla NT3-5 (xp), ponieważ Windows 7 wymaga teraz, aby odwoływać się tylko do uchwytów jądra, jeśli są podłączone do PsInitialSystemProcess.

Więcej na temat limitów obsługi Windows 7/8 od Marka Russinowicza

Więcej na temat „wielokrotności czterech” w PID

G Koe
źródło
6
Hmm, to interesujące, nigdy nie zdawałem sobie sprawy, że wszystkie stawki były podzielne przez 4
agz
brzmi, jakby użyli wstępnie pomnożonego indeksu tablicy dla PID
maniak ratchet
Nadal zastanawiasz się, a co ze wszystkimi PID między 4 a 200 ish wciąż?
agz
@agz: Liczby od 4 do 200 (i wiele innych) są w półtrwałym użyciu przez wątki w tak zwanym procesie systemowym. Identyfikatory procesów i wątków (zwane ogólnie „identyfikatorami klientów”) pochodzą z tej samej „przestrzeni numerów”. Możesz zobaczyć identyfikatory wątków w Eksploratorze procesów: Kliknij dwukrotnie proces, a następnie spójrz na kartę Wątki w wynikowym oknie „Właściwości”.
Jamie Hanrahan,
0

możesz zobaczyć wszystkie te procesy od 4 do 200 i wiele innych w okienku Process Process System - właściwości - panel wątków.

homer
źródło