Instalace ovladače filtru

Ovladač filtru PnP může podporovat konkrétní zařízení nebo všechna zařízení ve třídě nastavení zařízení a může připojit pod ovladač funkce zařízení (nižší filtr) nebo nad ovladačem funkce zařízení (horní filtr). Další informace o vrstvách ovladačů PnP najdete v tématu Typy ovladačů WDM .

Instalace ovladače filtru specifického pro zařízení

Ve Windows 10 verze 1903 a novějších je možné zaregistrovat ovladač filtru specifický pro zařízení pomocí direktivy INF AddFilter z oddílu INF DDInstall.Filters. Pro více informací viz Řazení ovladačů filtru zařízení.

Pokud chcete v dřívějších verzích Windows zaregistrovat ovladač filtru specifický pro zařízení, vytvořte položku registru prostřednictvím položky AddReg v části DDInstall.HW souboru INF zařízení. V případě horního filtru specifického pro zařízení vytvořte položku s názvem UpperFilters. V případě dolního filtru specifického pro zařízení vytvořte položku s názvem LowerFilters. Například následující výňatek INF nainstaluje ExampleFilterDriver jako horní filtr na ovladač ExampleFunctionDriver :

[Example_install]
CopyFiles=Filter_copyfiles, Function_copyfiles

[Example_install.HW]
AddReg=Filter_addreg

[Example_install.Services]
AddService=ExampleFunctionDriver,0x00000002,Function_ServiceInstallSection
AddService=ExampleFilterDriver,,Filter_ServiceInstallSection

[Filter_addreg]
HKR,,"UpperFilters",0x00010000,"ExampleFilterDriver" ; REG_MULTI_SZ value

[Filter_ServiceInstallSection]
DisplayName    = %Filter_ServiceDesc%
ServiceType    = 1     ; SERVICE_KERNEL_DRIVER
StartType      = 3     ; SERVICE_DEMAND_START
ErrorControl   = 1     ; SERVICE_ERROR_NORMAL
ServiceBinary  = %13%\ExampleFilterDriver.sys

Instalace ovladače filtru tříd

Chcete-li nainstalovat třídní horní nebo dolní filtr pro třídu nastavení zařízení, můžete poskytnout instalační aplikaci zařízení, která nainstaluje potřebné služby. Aplikace pak může službu zaregistrovat jako horní nebo nižší filtr pro požadované třídy nastavení zařízení. Ke kopírování binárních souborů služby může aplikace použít SetupInstallFilesFromInfSection. K instalaci služeb může aplikace použít SetupInstallServicesFromInfSection. Chcete-li zaregistrovat služby jako nástavbové a/nebo sestupné filtry pro konkrétní třídy nastavení zařízení, aplikace volá SetupInstallFromInfSection pro každou třídu nastavení zařízení, které jsou relevantní, pomocí popisovače klíče registru získaného z SetupDiOpenClassRegKey pro parametr RelativeKeyRoot. Představte si například následující části INF:

[DestinationDirs]
upperfilter_copyfiles = 13

[upperfilter_inst]
CopyFiles = upperfilter_copyfiles
AddReg = upperfilter_addreg

[upperfilter_copyfiles]
upperfilt.sys,,,0x00004000  ; COPYFLG_IN_USE_RENAME

[upperfilter_addreg]
; append this service to existing REG_MULTI_SZ list, if any
HKR,,"UpperFilters",0x00010008,"upperfilt"

[upperfilter_inst.Services]
AddService = upperfilt,,upperfilter_service

[upperfilter_service]
DisplayName   = %upperfilter_ServiceDesc%
ServiceType   = 1   ; SERVICE_KERNEL_DRIVER
StartType     = 3   ; SERVICE_DEMAND_START
ErrorControl  = 1   ; SERVICE_ERROR_NORMAL
ServiceBinary = %13%\upperfilt.sys

Instalační aplikace zařízení:

  1. Zavolejte SetupInstallFilesFromInfSection pro sekci [upperfilter_inst].

  2. Zavolejte SetupInstallServicesFromInfSection pro sekci [upperfilter_inst.Služby].

  3. Zavolejte jednou SetupInstallFromInfSection pro oddíl [upperfilter_inst] pro každý klíč třídy, pro který chce zaregistrovat službu upperfilt.

Každé volání by zadalo SPINST_REGISTRY pro argument Flags , aby bylo možné označit, že je potřeba provést pouze úpravy registru.