为什么某些进程分配了父级PID,即使它们没有父级?

有一些虚假的(不存在的PID)开始的进程。 一个例子是一个csrss.exe进程。 它启动,并且分配的父进程PID不存在。 如果您查看procexp.exe,“Parent”被列为“(524)”(在这种情况下,524是随机的,不存在的父PID)。 为什么分配这些?

客户端/服务器运行时子系统(CSRSS或csrss.exe )由会话pipe理器子系统(SMSS或smss.exe )产生。 SMSS由OS(系统总是具有4的PID)在OS服务的会话0下产生。 此外,SMSS在会话1(用户会话)中产生,具有启动CSRSS和WinLogon的唯一工作。 一旦这两个开始,会话1 SMSS终止。

因此,您所看到的幻像家长ID是已经终止的会话1 SMSS过程的PID。