在Windows下如何在内核模式下生成PID(进程标识符)?

J. *_*ttz 6 kernel pid

我想知道在Windows下如何生成进程标识符(又名PID)。在不同的机器上是否唯一?例如,考虑当前分配给我的Firefox程序的5856 ID。在另一台计算机下,同一可执行映像是否相同?

vcs*_*nes 6

PID 生成主要是微软不会正式记录的秘密 - 因为一旦他们记录下来,他们就必须坚持该实现。但是,它始终是 4 的倍数 - 但这不是您应该依赖的行为。它们不是唯一的,并且可以重复使用。

Raymond Chen 在他的博客中提到了这一点。


vil*_*pam 3

进程标识符在不同机器上并不唯一。它们可以在同一台计算机上重复用于以后的进程,并且在同一可执行文件的两次调用之间通常不会相同。

您不应该关心它是如何生成的 - 您唯一可以确定的是进程标识符唯一标识单个正在运行的进程,即在任何时候都只有一个进程具有该标识符。

  • 那么,你知道它是根据什么产生的吗? (2认同)
  • 不,这没有记录,并且可能会在 Windows 版本、服务包或更新之间或根据一天中的时间或月相而变化。:) (2认同)