Ce face funcția createprocess?

Ce face funcția CreateProcess

În acest moment, am examinat deja structurile care fac parte din proces și funcțiile API care vă permit (și sistemul de operare) să manipuleze procesele. De asemenea, ați învățat cum să utilizați diverse utilitare pentru a monitoriza modul în care procesele interacționează cu sistemul. Cum intră aceste procese și cum ajung ei să facă sarcinile pentru care au fost intenționate? În secțiunile următoare, veți afla cum sunt generate procesele Windows.







Crearea Windows proces se realizează prin apelarea una dintre funcțiile, cum ar fi CreateProcess, CreateProcessAsUser, CreateProcessWithTokenW sau CreateProcessWitbLogonW, și are loc în mai multe etape care implică trei componente de operare: kernel32.dll (client-side pentru Windows bibliotecă), sistem executiv și procesul de subsistem pentru Windows mediu ( csrss). Deoarece arhitectura Windows suportă subsistemul mediu multiple, operații necesare pentru a crea sistemul de obiect „proces“ de executare (care se poate utiliza alt subsistem de mediu), separat de operațiile necesare pentru a crea Windows proces. Prin urmare, unele acțiuni ale funcției Windows CreateProcess sunt specifice pentru semantica introdusă de subsistemul Windows.

Următoarea listă prezintă pașii principali în crearea unui proces cu funcția Windows CreateProcess. O descriere detaliată a acțiunilor la fiecare etapă este prezentată în secțiunile următoare.







1. Se deschide un fișier imagine (EXE), care va fi executat în timpul procesului.

2. Obiectul "proces" al sistemului executiv este creat.

3. Se creează un fir primar (stivă, context și obiect "flux" al sistemului executiv).

4. Subsistemul Windows este notificat despre crearea unui nou proces și a unui fir.

5. Fișierul primar începe executarea (dacă nu este specificat steagul CREATE_SUSPENDED).

Schema generală pentru crearea unui proces în Windows este prezentată în Fig. 6-5. Înainte de a deschide imaginea executabilă pentru execuție, CreateProcess face următoarele.

• Când apelați CreateProcess, clasa de prioritate este specificată în parametrul CreationFlags și sunând la CreateProcess, puteți specifica simultan mai multe clase de prioritate. Windows alege cel mai mic dintre ele.

• Când o clasă de priorități nu este specificată pentru un proces nou, valoarea implicită este Normală, cu excepția cazului în care clasa de prioritate a procesului creator este egală cu IdIe sau Sub Normal. În acest din urmă caz, noul proces primește aceeași clasă de priorități ca procesul de bază.

• În cazul în care noul proces este specificat clasa de prioritate în timp real, iar creatorul are privilegii Creșterea Programare Prioritate, setați High Class prioritate. Cu alte cuvinte, funcția CreateProcess reușește, chiar dacă persoana care a cauzat-o, nu privilegii suficiente pentru a crea procese cu clasa de prioritate în timp real, - o clasă de prioritate a noului proces va fi mai mic decât în ​​timp real.

• Toate ferestrele sunt cartografiate pe obiecte desktop, care reprezintă o reprezentare grafică a spațiului de lucru. Dacă nu specificați un anumit obiect desktop atunci când apelați CreateProcess, noul proces este mapat la obiectul curent de pe desktop al procesului creator.

Ce face funcția createprocess?







Articole similare

Trimiteți-le prietenilor: