[pso] NtTerminateProcess?

Maximilian Machedon maximilian.machedon at gmail.com
Tue Mar 28 21:01:22 EEST 2006


        Multumesc de raspunsuri, e un pic mai clar acum... Dar tot e o
problema: daca NtTerminateProcess returneaza, ce se executa pe urma?.. Adica
daca este apelat de procesul care se termina, cand functia returneaza se
executa cod? Ce cod? Ca in thread-ul care l-a apelat nu ar trebui sa mai 
existe cod, deci se executa cod din kernel, nu?


----- Original Message ----- 
From: "Razvan Hobeanu" <mindphobia at yahoo.com>
To: "Proiectarea Sistemelor de Operare" <pso at cursuri.cs.pub.ro>
Sent: Tuesday, March 28, 2006 2:39 PM
Subject: Re: [pso] NtTerminateProcess?


--- Maximilian Machedon
<maximilian.machedon at gmail.com> wrote:
>         Daca am intercepta apelul
> "NtTerminateProcess", ce s-ar intampla?
> Cand ar fi apelat "PsSetCreateProcessNotifyRoutine"?

Rutina callback inregistrata cu
PsSetCreateProcessNotifyRoutine va fi apelata (in
cazul terminarii procesului) dupa ce se va face exit
ultimul thread al procesului, cand e sters obiectul
procesului.

> Putem afla pid-ul
> procesului curent dupa ce apelul returneaza, daca
> procesul insusi a apelat
> "NtTerminateProcess"? De fapt, mai returneaza
> apelul?
>

Se poate afla pid-ul procesului curent dupa ce
NtTerminateProcess returneaza, deoarece obiectul
proces nu a fost sters inca. Apelul returneaza
deoarece NtTerminateProcess intern face terminate
pentru toate thread-urile procesului cu exceptia celui
in contextul caruia este apelat.

Razvan




More information about the pso mailing list