[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