阅读:2006回复:3
windows中进程pid号生成的公式是什么?有谁知道?
只知道是与csrss有关,但不知道是怎样的,没能力去反汇编,希望高人们说下~~~~~~
应该是与EPROCESS和GetTickCount有关的吗?? |
|
沙发#
发布于:2007-12-16 13:25
进程的PID是由ExCreateHandle生成的,PspCreateProcess中有如下代码:
Process->UniqueProcessId = ExCreateHandle (PspCidTable, &CidEntry); 进程创建时系统从PspCidTable中分配出一个Hanlde,PID则是该HANDLE的GenericHandleOverlay,以后可以用ExMapHandleToPointer函数从这个ID得到Cid |
|
|
板凳#
发布于:2007-12-17 22:39
呵呵,不太明白,其实我想知道的是pid生成的规律,以及影响pid大小的因素,通常情况下运行过的进程越多,新创建的pid也就越大,但为什么有些新创建进程的pid的值却比较小呢?还有有时候新创建进程pid的值会上升得很厉害,这又是为什么呢?
|
|
地板#
发布于:2007-12-17 23:22
因为根本是随机的~~
CreateHandleTable时只是找一个可用的Index~~~ |
|
|