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 monolitikus illesztőknek minden olyan fizikai, logikai vagy virtuális eszközhöz létre kell hozniuk egy eszközobjektumot, amelyhez I/O-kéréseket kezel. Az az illesztőprogram, amely nem hoz létre eszközobjektumot egy eszközhöz, nem kap IRP-ket az eszközhöz.
Egyes technológiai területeken az osztályillesztőhöz vagy portillesztőhöz társított minidriver-nak nem kell saját eszközobjektumokat létrehoznia. Ehelyett az osztály- vagy portillesztő hozza létre az eszközobjektumot, és megkapja az eszköz összes I/O kéréscsomagját. Az osztály- vagy portillesztő ezután egy illesztőprogram-specifikus módszerrel adja át az I/O-kérést a minidrivernak. Tekintse meg az adott technológiai terület dokumentációját annak megállapításához, hogy a Microsoft olyan osztály- vagy portillesztőt biztosít-e, amely eszközobjektumokat hoz létre az illesztőprogram nevében.
Az illesztőprogramok vagy a IoCreateDevice, vagy a IoCreateDeviceSecure függvények hívásával hozzák létre az eszközobjektumaikat. A használandó rutinról a következő szakaszokban olvashat bővebben.
Eszközobjektumok létrehozása WDM-függvényhez és szűrőillesztőkhöz
Eszközobjektumok létrehozása WDM Bus-illesztőprogramokhoz
Eszközobjektumok létrehozása nem WDM-illesztőprogramokhoz
Amikor az illesztőprogram létrehoz egy eszközobjektumot, a következő információkat szolgáltatja az IoCreateDevice vagy IoCreateDeviceSecure:
Az eszköz eszközbővítményének mérete. Az eszközbővítmény egy rendszer által lefoglalt tárolóterület, amelyet az illesztőprogram az eszközspecifikus tároláshoz használhat. További információ: Eszközbővítmények.
Rendszer által definiált állandó, amely az eszközobjektum által képviselt DeviceType jelzi. További információ: Eszköztípusok megadása.
Egy vagy több ORed rendszer által definiált állandó, amely az eszköz eszközjellemzőit jelzi. További információ: Eszközjellemzők megadása.
Az Kizárólagosnevű logikai érték azt határozza meg, hogy az eszközobjektum jelzőinek egy bitjét DO_EXCLUSIVE kell-e beállítani, ami azt jelzi, hogy az illesztőprogram kizárólagos eszközt, például videót, soros, párhuzamos vagy hangeszközt használ. A WDM-illesztőprogramoknak a Kizárólagos értékét FALSE-re kell állítani. További információ: Az eszközobjektumok kizárólagos hozzáférésének megadása.
Az illesztőprogram objektumára mutató pointer. A WDM-függvények vagy szűrőillesztők a AddDevice rutin paramétereként egy mutatót kapnak az illesztőprogram objektumához. Minden illesztőprogram a DriverEntry rutinjában kap egy mutatót az illesztőprogram-objektumhoz. A rendszer ezzel a mutatóval társítja az illesztőprogramot az eszközobjektumához.
Opcionális mutató egy nullával lezárt Unicode-sztringre (DeviceName) az eszköz nevének megadására. A WDM-illesztőprogramok – a buszvezetők kivételével – nem adnak meg eszköznevet; ez megfelel a PnP-kezelő biztonsági funkcióinak. További információ: Elnevezett eszközobjektumok.
Ha a IoCreateDevice vagy a IoCreateDeviceSecure hívása sikeres, az I/O-kezelő biztosít tárhelyet magának az eszközobjektumnak és a hozzá kapcsolódó összes további adatstruktúrának is, beleértve az eszközkiterjesztést, amelyet nullákkal inicializál.
Eszközobjektumok létrehozása WDM-függvény- és szűrőillesztőkhöz
A WDM-illesztőprogramok a buszillesztők kivételével meghívják IoCreateDevice az eszközobjektumok létrehozásához. A legtöbb WDM-illesztőprogram a AddDevice rutinjaiból hozza létre eszközobjektumait. Egyes illesztőprogramok, például a lemezillesztők, amelyeknek válaszolniuk kell a meghajtóelrendezési IOCTL-ekre, meghívják a IoCreateDevice-t egy kézbesítési rutinból.
Ha a Windows Driver Kit (WDK) dokumentációjának eszköztípus-specifikus szakaszai másként nem rendelkeznek, az illesztőprogramnak létre kell hoznia az eszközobjektumokat az AddDevice rutinjában. További információért lásd: "AddDevice rutin írása" .
Eszközobjektumok létrehozása WDM Bus-illesztőprogramokhoz
A WDM-buszillesztő PDO-t hoz létre, amikor egy IRP_MN_QUERY_DEVICE_RELATIONS kérésre reagálva új eszközt sorol fel, ha a relációs típus BusRelations.
Az alábbi szabályok határozzák meg, hogy egy buszvezető meghívja-e IoCreateDevice vagy IoCreateDeviceSecure eszközobjektum létrehozásához:
Ha egy eszköz használható nyers módban, akkor meg kell hívnia IoCreateDeviceSecure.
Ha az eszköz nem képes nyers mód támogatására, akkor a buszillesztő program használhatja a IoCreateDevice vagy a IoCreateDeviceSecureparancsot. IoCreateDevice akkor használható, ha a buszon lévő eszközök alapértelmezett rendszerbiztonsága megfelelő; IoCreateDeviceSecure használható egy szigorúbb biztonsági leíró megadására. További információ: Eszközhozzáférés vezérlése.
Eszközobjektumok létrehozása nem WDM-illesztőprogramokhoz
A nem WDM-illesztő a IoCreateDevice függvényt használja névtelen eszközobjektumok létrehozásához, az IoCreateDeviceSecure pedig nevesített eszközobjektumok létrehozásához. Vegye figyelembe, hogy a nem WDM-illesztőprogramok névtelen eszközobjektumai nem érhetők el felhasználói módban, ezért az illesztőprogramnak általában létre kell hoznia legalább egy elnevezett objektumot.