Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A ritkán használt lassú eszközök vagy eszközök (például CD/DVD-meghajtók) illesztőprogramja számos "várakozási" problémát meg tud oldani egy eszköz által dedikált rendszerszál létrehozásával. Emellett a fájlrendszer-illesztőprogramok többsége rendszer-feldolgozó szálakat használ, és munkavégzőszál-visszahívási rutinokat biztosít.
Ha egy eszközillesztő saját szálkörnyezettel rendelkezik, vagy rendszerszál-környezetben fut, szinkronizálási objektumokat használhat a koordinációhoz. Az eszköz által dedikált szál vagy a legmagasabb szintű illesztőprogram munkaszál-visszahívási rutinja képes szinkronizálni a diszpécserobjektumon, például egy eseményobjektumon vagy szemaphore-objektumon végzett műveleteket az illesztőprogram eszközbővítményének megosztott kommunikációs régiójában. Az eszköznek dedikált szál például várakozhat a megosztott diszpécser objektumra, amikor a szál eszköze nincs használatban, a KeWaitForSingleObject meghívásával egy szemafor esetén. Amíg az eszközillesztőt nem hívja meg egy I/O-művelet végrehajtására, a várakozási szál nem használ processzoridőt. Amikor az illesztőprogram meghívásra kerül, a szemafor jelzett állapotba van állítva.
Az illesztőprogram meghívhatja a PsCreateSystemThread parancsot egy illesztőprogram- vagy eszköz dedikált szál létrehozásához, majd meghívhatja a KeSetBasePriorityThread parancsot a szál alap prioritásának beállításához. Az illesztőnek olyan prioritásértéket kell megadnia, amely elkerüli az SMP-gépek futásidejű prioritási inverzióit . Vagyis ha egy illesztőprogram által létrehozott szál alap prioritását túl magasra állítja, késéseket okozhat az alacsonyabb prioritású szálak végrehajtásában, amelyek I/O-kéréseket küldenek az adott illesztőhöz.
Mivel a szálobjektumok maguk is egyfajta kézbesítőobjektumok, a szálak megvárhatják, amíg egy másik szál befejeződik. A szálhoz társított szálobjektum-mutató beszerzéséhez az illesztő meghívhatja az ObReferenceObjectByHandle parancsot, amely a PsCreateSystemThreadtól kapott szálfogóponton halad át.
Egy szál meghívhatja a KeDelayExecutionThread parancsot , hogy várjon egy olyan időközre, amely lehet teljes idejű szelet vagy hosszabb. A KeDelayExecutionThread intervallum részletessége körülbelül 10 ezredmásodperc. Mivel a KeDelayExecutionThread időzítőalapú rutin, az intervallum részletessége a platformtól függően valamivel gyorsabb vagy lassabb, mint 10 ezredmásodperc.