[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