Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí primitivního ovladače můžete zpracovávat a spravovat software, který používá instalaci založenou na INF, ale nemusí být nutně svázaný s konkrétním hardwarovým zařízením.
Pozadí a výhody primitivních ovladačů
Před verzí 1903 systému Windows 10 operační systém plně nepodporoval určité typy softwaru, které používaly instalaci založenou na INF, ale nutně nebyly vázány na konkrétní hardwarové zařízení. I když tyto části softwaru používaly soubory INF jako manifest pro instalaci, operační systém o tomto scénáři nevěděl přímo a neměl podporu pro zpracování nativně.
Vzhledem k tomu, že tyto části softwaru nebyly svázané s hardwarovým zařízením, nainstalují se do celého systému bez ohledu na hardware. V důsledku toho nebylo zaručeno, že tyto části softwaru byly správně nainstalovány, odinstalovány nebo zpracovány při upgradu operačního systému.
Od Windows 10 verze 1903 platforma Plug and Play zpracovává a spravuje tento typ softwarového balíčku jako entitu nejvyšší úrovně, což vede ke zlepšení spolehlivosti a zaručení správného chování takového softwaru, zejména při upgradu a resetování operačního systému.
Typy softwaru, které využívají tuto novou podporu platformy, se nazývají Primitivní ovladače. Primitivní ovladače nadále používají instalaci založenou na INF a využívají základní platformu s úložištěm ovladačů ke sledování všech relevantních souborů.
Základní platforma Plug and Play pak elegantně nainstaluje, odinstaluje a udržuje stav ovladače při upgradu operačního systému.
Tyto INFs se koncepčně spravují odlišně. Dříve [DefaultInstall] (a často se [DefaultUninstall]) zpracovával SetupAPI způsobem podobnému skriptu, kde se INF použil jako manifest a SetupAPI spustil pokyny v příslušných částech jménem volajícího.
Zrušení změn (k provedení odinstalace) vyžadovalo uvedení části INF, která vykoná opačnou sadu pokynů než část pro instalaci. Ovladače využívající INF však nevyžadují sekci pro odinstalaci.
Primitivní ovladače používají stejná rozhraní API pro instalaci a odinstalaci jako ovladače zařízení, kde rozhraní API pro odinstalaci provede inverzní sadu operací jako operaci instalace a akce instalace nebo odinstalace balíčku ovladačů tyto části zpracuje.
Požadavky INF na přístup k primitivním funkcím ovladače
Část verze musí být dokončená stejně jako ovladače PnP.
Je nutné vyplnit direktivu Provider.
Směrnice třídy musí být vyplněna.
Musí být vyplněna direktiva ClassGuid.
Žádný oddíl [Výrobce] nesmí být přítomen.
Oddíly [DefaultInstall] musí být označeny architekturou a nesmí být přítomny žádné neoznačené verze.
Správný: [DefaultInstall.NTamd64]
Nesprávný: [DefaultInstall]
[DefaultUninstall] nemusí být v INF (viz výjimku pro starší kompatibilitu ).
Primitivní ovladače, které cílí jenom na Windows 10 verze 1903 a novější
Primitivní ovladače určené pouze pro Windows 10 verze 1903 a novější by měly používat DiInstallDriver a DiUninstallDriver k správné instalaci a odinstalaci jejich softwaru z úložiště ovladačů.
Řidiči by měli také používat Dirid 13 k určení úložiště ovladačů jako požadovaného místa instalace.
Kompatibilita se staršími systémy
Zatímco [DefaultUninstall] je zakázán v primitivních ovladačích, je provedena výjimka kvůli kompatibilitě operačního systému nižší úrovně. Systém Windows zavádí direktivu INF, která způsobuje, že verze operačního systému, která podporuje primitivní ovladače, ignoruje část [DefaultUninstall]. Pokud váš balíček ovladačů potřebuje podporovat verze operačního systému nižší úrovně, zahrňte následující syntaxi, abyste zajistili, že platforma bude tyto případy správně zpracovávat:
[DefaultUninstall.NTamd64]
LegacyUninstall=1
Oddíly [DefaultInstall] a [DefaultUninstall] musí být stále dekorované podle architektury; zahrnutím LegacyUninstall=1však Windows ignoruje oddíl [DefaultUninstall] (ve Windows 10 verze 1903 a novější). Tímto způsobem můžete tuto část zahrnout do INF, kde ji lze použít se starší verzí instalačního/odinstalačního programu, aby bylo možné odinstalovat primitivní balíček ovladačů.
Počínaje Windows 10 verzí 1903, pokud předáte architekturou ozdobený oddíl [DefaultInstall] nebo [DefaultUninstall] do API InstallHInfSection v setupapi.dll, bude balíček ovladače zkontrolován, zda podporuje primitivní funkčnost ovladače. Pokud podporuje základní funkce ovladače, místo zpracování zadané části tradičním způsobem se INF soubor předá podle potřeby buď DiInstallDriver, nebo DiUninstallDriver. Díky tomu může jeden instalační program používat primitivní ovladače v kompatibilních verzích operačního systému a udržovat podporu pro předchozí verze operačního systému.
Konverze z INF souboru ovladače zařízení
Převést soubor INF, který používá [Manufacturer], na takový, který používá [DefaultInstall], vyžaduje menší změny souboru INF. Na rozdíl od oddílu [Manufacturer] je oddíl [DefaultInstall] vstupním bodem i oddílem instalace. Kombinuje oddíly [Manufacturer], [Models] a [DDInstall] konceptuálně do jednoho.
Následující INF zobrazí chybu 1297 v InfVerif, protože se nenainstaluje na žádný hardware.
[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
Výše uvedené INF lze převést na INF s využitím [DefaultInstall], jak je znázorněno níže.
[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