[pso] Despre [tema1]Windows - KeServiceSystemTable

Razvan Deaconescu razvand at cs.pub.ro
Sun Mar 25 23:06:27 EEST 2007


omar Chouydary wrote:
> Puteti preciza exact semnificatia fiecarui camp din structura std? Am 
> cam facut tema.. dar nu stiu sigur ce semnificatie are fiecare camp din 
> cei definiti in sci.h:
> struct std {
>     void **st;    /* service table */ -> aici e clar
>     int *ct;        /* counter table */ -> aici sa inteleg ca e vb de 
> nr. tabelei (0-3) ?

nu, e vorba de un contor de apeluri; poti sa-l pui pe NULL; nu e folosit

>     int ls;            /* last service no */ -> aici e clar

vezi ca nu e indexul ultimului serviciu, ci numarul de apeluri valide

>     unsigned char *spt;    /* service parameter table */ -> aici nu stiu 
> cu cat trebuie initializat
> };
> 

spt - service parameter table - este un vector de dimensiune std.ls; 
fiecare element contine numarul de octeti ocupat de parametrii apelului 
asociat; altfel spus pe pozitia 0 a vectorului spt se gaseste spatiul 
ocupat (numar de octeti) de parametrii apelului de sistem cu indexul 0; 
pe Windows este nevoie de asa ceva din cauza faptului ca exista un numar 
mare de parametri ai apelurilor de sistem si nu pot fi transmisi prin 
registre

nici sursele nu sunt foarte "enlighting", dar pot oferi o noua 
perspectiva :-)
http://cs.pub.ro/~pso/lxr/source/base/ntos/inc/ke.h?v=wrk-1.2#579

Razvan


More information about the pso mailing list