Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Microsoft Windows NT-alapú operációs rendszer objektumalapú. A vezetők különböző összetevői egy vagy több objektumtípust határoznak meg. Minden összetevő kernel módú támogatási rutinokat exportál, amelyek módosítják az objektumtípusok példányait. Egyetlen összetevő sem férhet hozzá közvetlenül egy másik összetevő objektumaihoz. Egy másik összetevő objektumainak használatához egy összetevőnek meg kell hívnia az exportált támogatási rutinokat.
Ez a kialakítás lehetővé teszi, hogy az operációs rendszer hordozható és rugalmas legyen. Előfordulhat például, hogy az operációs rendszer egy későbbi kiadása olyan újrakódolt kernelösszetevőt tartalmaz, amely ugyanazokat az objektumtípusokat határozza meg, de teljesen eltérő belső struktúrákkal. Ha a kernel hipotetikus újrakódolt verziója olyan támogatási rutinokat exportál, amelyek neve és paraméterei megegyeznek a meglévő készlettel, a belső módosítások nem befolyásolnák a meglévő rendszer bármely más végrehajtó összetevőjének hordozhatóságát.
Hasonlóképpen, ahhoz, hogy hordozható és konfigurálható maradjon, az illesztőprogramoknak csak a WDK-ban leírt támogatási rutinok és egyéb interfészek használatával kell kommunikálniuk az operációs rendszerrel és egymással.
Az operációs rendszerhez hasonlóan az illesztőprogramok is objektumalapúak. Például:
A fájlobjektumok egy felhasználói módú alkalmazás eszközhöz való kapcsolatát jelölik.
Az eszközobjektumok az egyes illesztőprogramok logikai, virtuális vagy fizikai eszközeit jelölik.
Az illesztőprogram-objektumok az egyes illesztőprogramok betöltési rendszerképét jelölik.
Az I/O-kezelő meghatározza a fájlobjektumok, eszközobjektumok és illesztőprogram-objektumok struktúráját és felületeit.
A többi vezető összetevőhöz hasonlóan az illesztőprogramok is objektumokat használnak az I/O-kezelő és más rendszerösszetevők által exportált kernel módú támogatási rutinok meghívásával. A kernel módú támogatási rutinok általában olyan névvel rendelkeznek, amelyek azonosítják az egyes rutinok által manipulált objektumot és az egyes rutinok által az adott objektumon végrehajtott műveletet. Ezek a támogatási rutinnevek a következő formát követik:
PrefixOperationObject
ebben:
Előképző Azonosítja a támogatási rutint exportáló kernel módú összetevőt, és általában az objektumtípust definiáló összetevőt. A legtöbb előtagnak két betűje van.
Művelet Az objektummal végzett művelet leírása.
Tárgy Azonosítja az objektum típusát.
Az I/O-kezelő IoCreateDevice rutinja például létrehoz egy eszközobjektumot, amely egy fizikai, logikai vagy virtuális eszközt jelöl az I/O-kérések céljaként.
Az egyik rendszerösszetevő exportálhat olyan rutinokat, amelyek egy másik összetevő támogatási rutinjait hívják meg. Ez csökkentheti a sofőr által kezdeményezett hívások számát. Az I/O-kezelő különösen exportál bizonyos rutinokat, amelyek megkönnyítik a vezetők fejlesztését. Például az IoConnectInterruptEx, amelyet a legalacsonyabb szintű illesztőprogramok hívnak meg az megszakítási szolgáltatási rutinjaik regisztrálására, meghívja a kernel megszakítási objektumokkal kapcsolatos támogatási rutinjait.
Objektum átlátszatlansága
Egyes rendszer által definiált objektumok átlátszatlanok: csak a meghatározó rendszerösszetevő ismeri az objektum belső struktúráját, és közvetlenül hozzáférhet az objektum összes adatához. Az átlátszatlan objektumok exportálását meghatározó rendszerösszetevő támogatja azokat a rutinokat, amelyeket az illesztőprogramok és más kernel módú összetevők meghívhatnak az objektum módosítására. Az illesztőprogramok soha nem férnek hozzá közvetlenül az átlátszatlan objektumstruktúrákhoz.
Jegyzet Az illesztőprogramok hordozhatóságának fenntartása érdekében az illesztőprogramoknak a rendszer által biztosított támogatási rutinokat kell használniuk a rendszer által meghatározott objektumok kezeléséhez. A meghatározó rendszerösszetevő bármikor módosíthatja az objektumtípusok belső szerkezetét.