Windows PID = 0 действителен? - PullRequest
18 голосов
/ 13 июля 2010

В Windows - 0 действительный PID для процесса или он зарезервирован ОС? Было бы хорошо, если бы вы могли предоставить ссылку на документ, который говорит, что он зарезервирован или что. Спасибо!

Ответы [ 3 ]

14 голосов
/ 13 июля 2010

Открыть диспетчер задач - перейдите на вкладку процессов (возможно, нажмите «Просмотр», «Показать столбцы» и включите столбец PID).

PID 0 - это процесс простоя системы.Поскольку этот процесс на самом деле не является процессом и никогда не завершается, я подозреваю, что это всегда так.

Документация для меня недоступна, но я уверен, что так будет всегда.

3 голосов
/ 13 июля 2010

Это нигде не указано, но все сводится к тому, как работает таблица обработки ядра. Этот же объект используется как для дескрипторов процесса, так и для идентификаторов процесса / потока. Бывает, что значения дескриптора начинаются с 0x4, и PsInitialSystemProcess является первым процессом, который будет создан, поэтому он получает PID 4. Фактически, неактивный процесс не является процессом, и вы не можете его открыть. Вероятно, у него нет PID для большинства намерений и целей, но большинство инструментов считают его равным 0.

1 голос
/ 13 июля 2010

PID 0 зарезервирован для бездействующего "псевдо-процесса", так же как PID 4 зарезервирован для системы (ядро Windows).

Я не могу найти никакой документации о том, где это находитсяуказано, но при запросе процессов через любой API (Perf Counters, WMI) вы всегда получите бездействующий процесс для PID 0.

...