Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een PnP-filterstuurprogramma kan ondersteuning bieden voor een specifiek apparaat of alle apparaten in een apparaatinstallatieklasse en kan worden gekoppeld onder het functiestuurprogramma van een apparaat (een lager filter) of boven het functiestuurprogramma van een apparaat (een bovenfilter). Zie Typen WDM-stuurprogramma's voor meer informatie over PnP-stuurprogrammalagen.
Een apparaatspecifiek filterstuurprogramma installeren
Op Windows 10 versie 1903 en hoger kan een apparaatspecifiek filterstuurprogramma worden geregistreerd met behulp van een INF AddFilter-instructie uit een sectie INF DDInstall.Filters. Zie de volgorde van filterstuurprogramma's voor apparaten voor meer informatie.
Als u voor eerdere versies van Windows een apparaatspecifiek filterstuurprogramma wilt registreren, maakt u een registervermelding via een AddReg-vermelding in de DDInstall. HW-sectie van het INF-bestand van het apparaat. Maak voor een apparaatspecifiek upper filter een vermelding met de naam UpperFilters. Maak voor een apparaatspecifiek lower filter een vermelding met de naam LowerFilters. Met het volgende INF-fragment wordt ExampleFilterDriver bijvoorbeeld geïnstalleerd als een bovenfilter op het stuurprogramma 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
Een klassefilterstuurprogramma installeren
Als u een klassebreed boven- of onderfilter wilt installeren voor een apparaatinstallatieklasse, kunt u een toepassing voor apparaatinstallatie opgeven waarmee de benodigde services worden geïnstalleerd. De toepassing kan de service vervolgens registreren als een boven- of onderfilter voor de gewenste apparaatinstallatieklassen. Als u de binaire servicebestanden wilt kopiëren, kan de toepassing SetupInstallFilesFromInfSection gebruiken. Als u de services wilt installeren, kan de toepassing SetupInstallServicesFromInfSection gebruiken. Als u de services wilt registreren als bovenste en/of lagere filters voor bepaalde apparaatinstallatieklassen, roept de toepassing SetupInstallFromInfSection aan voor elke relevante apparaatinstallatieklasse, met de greep van de registersleutel die ze hebben opgehaald uit SetupDiOpenClassRegKey voor de parameter RelativeKeyRoot. Denk bijvoorbeeld aan de volgende INF-secties:
[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
De apparaatinstallatietoepassing zou het volgende doen:
Roep SetupInstallFilesFromInfSection aan voor de sectie [upperfilter_inst].
Roep SetupInstallServicesFromInfSection aan voor de [upperfilter_inst.Services]-sectie.
Roep SetupInstallFromInfSection aan voor de sectie [upperfilter_inst], één keer voor elke klassesleutel waarvoor het de upperfilt-service wil registreren.
Elke aanroep zou SPINST_REGISTRY opgeven voor het argument Flags om aan te geven dat alleen registerwijzigingen moeten worden uitgevoerd.