Mit csinál a creationprocess funkció?

A CreateProcess funkció

Ezen a ponton már megvizsgáltuk a folyamat részét képező struktúrákat, valamint azokat a API-funkciókat, amelyek lehetővé teszik Önnek (és az operációs rendszernek) a folyamatok manipulálását. Azt is megtanultad, hogyan kell különböző segédprogramokat használni annak ellenőrzésére, hogy a folyamatok miként hatnak a rendszerre. Hogyan jönnek létre ezek a folyamatok és hogyan végzik el azokat a feladatokat, amelyekre szántak? A következő szakaszokban megtudhatja, hogyan keletkeznek a Windows folyamatok.

Létrehozása Windows folyamat valósul meg, hívja az egyik feladatot, mint például a CreateProcess CreateProcessAsUser, CreateProcessWithTokenW vagy CreateProcessWitbLogonW, és zajlik több szakaszból álló három működési elemek: Kernel32.dll (kliensoldali a Windows könyvtár), a végrehajtó rendszer és a Windows környezet alrendszer folyamata ( Csrss). Mivel a Windows architektúra támogatja a több környezeti alrendszer műveletek létrehozásához szükséges a tárgy „folyamat” végrehajtási rendszer (amely lehet használni más környezetben alrendszer), külön a műveletek létrehozásához szükséges Windows folyamat. Ezért a Windows-feladat CreateProcess egyes műveletei a Windows alrendszer által bevezetett szemantikához kapcsolódnak.

Az alábbi lista bemutatja a processz létrehozásához szükséges fő lépéseket a CreateProcess Windows funkcióval. Az egyes lépések részletes leírását az alábbi szakaszokban találja meg.

1. Megnyílik egy képfájl (EXE), amelyet a folyamat végrehajt.

2. A végrehajtó rendszer "folyamat" célja.

3. Elsődleges szálat hoz létre (a végrehajtó rendszer stackje, kontextusa és tárgya "stream").

4. A Windows alrendszert értesíti egy új folyamat és szál létrehozásáról.

5. Az elsődleges szál megkezdi a végrehajtást (ha a CREATE_SUSPENDED zászló nincs megadva).

A folyamat Windows rendszerben való létrehozásának általános terve a 3. ábrán látható. 6-5. A futtatható kép megnyitásához a CreateProcess a következőket hajtja végre.

• A CreateProcess létrehozásakor a prioritási osztály a CreationFlags paraméterben van megadva, és a CreateProcess meghívásával több prioritási osztályt is megadhat egyszerre. A Windows a legalacsonyabbat választja ki.

• Ha egy prioritási osztály nincs megadva egy új eljáráshoz, akkor az alapértelmezett Normál, kivéve, ha az alkotói folyamat prioritási osztálya egyenlő az IdIe vagy a Normal Below. Az utóbbi esetben az új folyamat ugyanazt a prioritási osztályt kapja, mint a szülőprocessz.

• Ha az új eljárást meghatározott prioritási osztály Valós idejű, és a teremtő jogokkal rendelkezik növelése ütemezése Prioritás beállítása Class Magas prioritás. Más szóval, a CreateProcess funkció sikerül, akkor is, ha az a személy, aki okozta, nem megfelelő jogosultsággal létre folyamatok prioritási osztály Real-time, - a prioritási osztály az új eljárás alacsonyabb lesz, mint a Real-time.

• Az összes ablakot asztali objektumokhoz rendeltük, amelyek a munkaterület grafikus ábrázolását jelentik. Ha nem ad meg konkrét asztali objektumot a CreateProcess létrehozásakor, akkor az új folyamat a létrehozó folyamat aktuális asztali objektumához van hozzárendelve.

Mit csinál a creationprocess funkció?

Kapcsolódó cikkek