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.
Használjon primitív illesztőprogramot olyan szoftverek kezeléséhez és kezeléséhez, amelyek INF-alapú telepítést használnak, de nem feltétlenül kapcsolódnak egy adott hardvereszközhöz.
A primitív illesztőprogramok háttere és előnyei
A Windows 10 1903-at megelőzően az operációs rendszer nem támogatja teljes mértékben azokat a szoftvertípusokat, amelyek INF-alapú telepítést használtak, de nem feltétlenül voltak egy adott hardvereszközhöz kötve. Bár ezek a szoftverek INF-fájlokat használtak a telepítés jegyzékfájljaként, az operációs rendszer nem tudott közvetlenül erről a forgatókönyvről, és nem rendelkezik támogatással a natív kezeléshez.
Mivel ezek a szoftverek nem hardvereszközhöz voltak kötve, hardvertől függetlenül az egész rendszerre telepítenék őket. Ennek eredményeképpen nem volt garancia arra, hogy ezek a szoftverek megfelelően lettek telepítve, eltávolítva vagy kezelve az operációs rendszer frissítésekor.
A Windows 10 1903-as verziójától kezdve a Plug and Play platform felső szintű entitásként kezeli és kezeli az ilyen típusú szoftvercsomagokat, ami nagyobb megbízhatóságot és garantált megfelelő működést eredményez az ilyen szoftverek esetében, különösen az operációs rendszer frissítése és alaphelyzetbe állítása során.
Az új platformtámogatást használó szoftvertípusokat primitív illesztőprogramoknak nevezzük. A primitív illesztőprogramok továbbra is INF-alapú telepítést használnak, és a mögöttes platform az Illesztőprogram-tárolót használja az összes releváns fájl nyomon követésére.
A mögöttes Plug and Play platform ezután kecsesen telepíti, eltávolítja és karbantartja az operációs rendszer frissítésének illesztőprogram-állapotát.
Elméletileg ezek az INF-k másképpen vannak kezelve. Korábban a [DefaultInstall] (és gyakran [DefaultUninstall]) szkriptszerű feldolgozást végzett a SetupAPI , ahol az INF jegyzékként volt használva, és a SetupAPI végrehajtotta a hívó nevében a vonatkozó szakaszok utasításait.
A módosítások visszavonásához (eltávolításhoz) olyan INF-szakaszt kellett megadni, amely a telepítési szakaszként az ellenkező utasításkészletet hajtotta végre. Az INF-használó primitív illesztőprogramok azonban nem igényelnek eltávolítási szakaszt.
A primitív illesztőprogramok ugyanazokat a telepítési és eltávolítási API-kat használják, mint az eszközillesztők, ahol az eltávolítási API végrehajtja a telepítési művelet inverz műveletkészletét, és az illesztőprogram-csomag telepítésének vagy eltávolításának lépései feldolgozzák ezeket a szakaszokat.
INF-követelmények a primitív illesztőprogram-funkciók eléréséhez
A Verzió szakasznak teljesnek kell lennie, csakúgy, mint a PnP-illesztőprogramok.
A szolgáltatói irányelvet ki kell tölteni.
A class utasítást ki kell tölteni.
A ClassGuid direktívát ki kell tölteni.
Az illesztőprogramnak DCH-kompatibilisnek kell lennie.
Nem szerepelhet [Gyártó] szakasz.
A [DefaultInstall] szakaszoknak architektúrával dekorálva kell lenniük, és nem lehetnek jelen dekorálatlan verziók.
Helyes: [DefaultInstall.NTamd64]
Helytelen: [DefaultInstall]
Előfordulhat, hogy a [DefaultUninstall] nem szerepel az INF-ben (kivétel esetén lásd az örökölt kompatibilitást ).
Csak a Windows 10 1903-es és újabb verzióját célzó primitív illesztőprogramok
A csak a Windows 10 1903-ás és újabb verzióihoz készült primitív illesztőprogramoknak a DiInstallDriver és a DiUninstallDriver használatával kell megfelelően telepíteniük és eltávolítaniuk a szoftvereiket az illesztőprogram-tárolóban vagy onnan.
A járművezetőknek a Dirid 13 használatával is megfelelően meg kell adni az illesztőprogram-tárolót, mint a telepíteni kívánt célhelyet.
Örökségi kompatibilitás
Bár a [DefaultUninstall] használata tiltott a primitív illesztőprogramokban, kivétel történik az operációs rendszer alacsonyabb szintű kompatibilitása érdekében. A Windows bevezet egy INF-irányelvet, amely miatt a primitív illesztőprogramokat támogató operációsrendszer-verzió figyelmen kívül hagyja a [DefaultUninstall] szakaszt. Ha az illesztőprogram-csomagnak támogatnia kell az operációs rendszer alacsonyabb szintű verzióit, az alábbi szintaxissal győződjön meg arról, hogy a platform megfelelően kezeli az ilyen eseteket:
[DefaultUninstall.NTamd64]
LegacyUninstall=1
A [DefaultInstall] és a [DefaultUninstall] szakasznak továbbra is architektúra jelöléssel kell ellátva lennie; a Windows azonban figyelmen LegacyUninstall=1kívül hagyja a [DefaultUninstall] szakaszt (a Windows 10 1903-es és újabb verzióiban). Ezzel felveheti ezt a szakaszt az INF-be, ahol egy régebbi telepítési/eltávolítási alkalmazással lefelé használható a primitív illesztőprogram-csomag eltávolításához.
A Windows 10 1903-as verziójától kezdve, ha egy architektúrával díszített [DefaultInstall] vagy [DefaultUninstall] szakaszt küld be az InstallHInfSection API-nak a setupapi.dll-ban, a rendszer ellenőrzi, hogy a meghajtócsomag támogatja-e a primitív illesztőprogram-funkciókat. Ha támogatja a primitív illesztőprogram-funkciókat, és nem az örökölt módon dolgozza fel a megadott szakaszt, az INF a DiInstallDriver vagy a DiUninstallDriver számára lesz átadva, ha szükséges. Így egyetlen telepítő használhatja a primitív illesztőprogramokat a kompatibilis operációsrendszer-verziókon, és fenntarthatja a korábbi operációsrendszer-verziók támogatását.
INF-eszközillesztőből történő átalakítás
A [Gyártó] elemet használó INF -nek a [DefaultInstall] elemet használóvá alakításához kisebb módosításokra van szükség az INF-ben. A [Gyártó] szakasztól eltérően a [DefaultInstall] szakasz egyszerre belépési pont és telepítési szakasz is. Ez elméletileg egyesíti a [Gyártó], a [Models] és a [DDInstall] szakaszt.
A következő INF 1297-ben hibaüzenetet kap az InfVerifben , mert nem települ semmilyen hardverre:
[Manufacturer]
%Company% = Driver, NTx86, NTamd64
[Driver.NTx86]
%DeviceDesc% = InstallSection_32,
[Driver.NTamd64]
%DeviceDesc% = InstallSection_64,
[InstallSection_64]
CopyFiles = MyCopyFiles_64
AddReg = MyAddReg
[InstallSection_64.Services]
AddService = MyService,, MyService_Install
[InstallSection_32]
CopyFiles = MyCopyFiles_x86
AddReg = MyAddReg
[InstallSection_32.Services]
AddService = MyService,, MyService_Install
A fenti INF konvertálható [DefaultInstall]-alapú INF-vé az alább látható módon.
[DefaultInstall.NTamd64]
CopyFiles = MyCopyFiles_64
AddReg = MyAddReg
[DefaultInstall.NTamd64.Services]
AddService = MyService,, MyService_Install
[DefaultInstall.NTx86]
CopyFiles = MyCopyFiles_x86
AddReg = MyAddReg
[DefaultInstall.NTx86.Services]
AddService = MyService,, MyService_Install