[pso] Windows PID

Andrei Popa ca at i-neo.ro
Sat Mar 17 21:24:04 EET 2007


On Sat, 2007-03-17 at 18:26 +0200, Ion Ionascu wrote:
> Dar PID-urile nu sunt niste indecsi? Adica primul proces are pid-ul 1,
> al doilea are pid-ul 2 etc.

tabela de handel-uri la procese: _HANDLE_TABLE
http://cs.pub.ro/~pso/lxr/source/base/ntos/inc/ex.h?v=wrk-1.2#5179
care contine HANDLE UniqueProcessId;

Functia PspCreateProcess() aloca pid-ul astfel:

Process->UniqueProcessId = ExCreateHandle (PspCidTable, &CidEntry);

ExCreateHandle() cheama ExpAllocateHandleTableEntry(HandleTable,&Handle)
iar
Process->UniqueProcessid este defapt Handle.GenericHandleOverlay;
Handle fiind de tipul _EXHANDLE
http://cs.pub.ro/~pso/lxr/source/base/ntos/inc/ex.h?v=wrk-1.2#4971, o
uniune care retine "handle table entry index".
deci eu as zice ca pid-ul este defapt index-ul in HANDLE_TABLE al unui
proces.



> 
> 
> On 3/17/07, Andrei Popa <ca at i-neo.ro> wrote:
>         On Sat, 2007-03-17 at 17:24 +0200, Ion Ionascu wrote:
>         > Care este motivul pentru care toate PID-urile din Windows
>         sunt numere 
>         > divizibile cu 4?
>         
>         Variabila care tine minte pid-ul este de tip HANDLE care este
>         un typedef
>         la (void*), care pe i386 are 4bytes.
>         Pe Windows64bits, (void*) are 8 bytes deci PID-urile ar trebui
>         sa fie
>         multiple de 8.
>         
>         
>         --
>         Andrei Popa - 341C3
>         
>         _______________________________________________
>         pso mailing list
>         pso at cursuri.cs.pub.ro
>         http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
> 
-- 
Andrei Popa - 341C3



More information about the pso mailing list