Szálfogópontok és -azonosítók

Amikor a CreateThread vagy CreateRemoteThread függvény létrehoz egy új szálat, a rendszer visszaad egy fogópontot a szálhoz. Alapértelmezés szerint ez a leíró teljes hozzáférési jogosultságokkal rendelkezik, és – a biztonsági hozzáférés ellenőrzésének függvényében – bármely olyan függvényben használható, amely elfogadja a szálfogópontot. Ezt a leírót a gyermekfolyamatok örökölhetik a létrehozáskor megadott öröklési jelzőtől függően. A leírót duplikálhatja DuplicateHandle, amely lehetővé teszi egy szálfogópont létrehozását a hozzáférési jogosultságok egy részhalmazával. A fogópont a lezárásig érvényes, még a megadott szál leállása után is.

A CreateThread és CreateRemoteThread függvény egy azonosítót is ad vissza, amely egyedileg azonosítja a szálat a rendszerben. A szálak a GetCurrentThreadId függvénnyel szerezhetik be a saját szálazonosítóját. Az azonosítók a szál létrehozásának időpontjától a szál leállításáig érvényesek. Vegye figyelembe, hogy a szálazonosító soha nem lesz 0.

Ha rendelkezik szálazonosítóval, a OpenThread függvény meghívásával lekérheti a szálfogópontot. OpenThread lehetővé teszi a leíró hozzáférési jogosultságainak megadását, valamint azt, hogy örökölhető-e.

A szálak a GetCurrentThread függvénnyel lekérhetnek egy pszeudofogópontot, a saját szálobjektumához. Ez a pszeudoleíró csak a hívási folyamatra érvényes; más folyamatok nem örökölhetők vagy duplikálhatók. A valódi fogópont a szálhoz való lekéréséhez használjon egy pszeudofogópontot, használja a DuplicateHandle függvényt.

Egy folyamat szálainak számbavételéhez használja a Thread32First és Thread32Next függvényt.