[pso] [Tema1] Structura std

Octavian Voicu octavian.voicu at gmail.com
Fri Mar 19 12:47:56 EET 2010


Fri, Mar 19, 2010 at 10:57 AM, Eugen <pupicutz2000 at gmail.com> wrote:
>
> La tema 1 pe windows, structura std este un pic ambigua.
> Ce inseamna fiecare camp ?

>   void **st;    /* service table */
Un pointer la service call table [un vector de adrese ale handlerelor
pentru fiecare system call, indexat dupa id-ul system call-ului]

>   int *ct;        /* counter table */
Pentru profiling, folosit doar in debug builds. Un pointer la un
vector de countere, indexat tot dupa id-ul system call-ului, care
numara de cate ori a fost apelat fiecare system call.

>   int ls;            /* last service no */
Numarul de intrari din service table / counter table / service parameter table.

>   unsigned char *spt;    /* service parameter table */
Numarul de bytes ocupati de argumentele fiecarui system call.

Pentru dispatcherul vostru nu veti folosi decat service table si last
service no, dar cand creati noua tabela este nevoie sa duplicati si
service parameter table.

Pentru mai multe informatii vezi [1], descrierea
KeAddSystemServiceTable [2] si trap.asm, sursa dispatcherului de
system calls pentru windows [3].

Octavian


More information about the pso mailing list