Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sterownik filtru PnP może obsługiwać określone urządzenie lub wszystkie urządzenia w klasie konfiguracji urządzenia i może dołączyć poniżej sterownika funkcji urządzenia (dolny filtr) lub powyżej sterownika funkcji urządzenia (górnego filtru). Aby uzyskać więcej informacji na temat warstw sterowników PnP, zobacz Typy sterowników WDM .
Instalowanie sterownika filtru specyficznego dla urządzenia
W systemie Windows 10 w wersji 1903 lub nowszej można zarejestrować sterownik filtru specyficznego dla urządzenia przy użyciu dyrektywy INF AddFilter z sekcji INF DDInstall.Filters. Aby uzyskać więcej informacji, zobacz Porządkowanie sterowników filtru urządzeń.
W przypadku wcześniejszych wersji systemu Windows, aby zarejestrować sterownik filtru specyficzny dla urządzenia, utwórz wpis rejestru za pomocą wpisu AddReg w sekcji DDInstall.HW pliku INF urządzenia. W przypadku górnego filtru specyficznego dla urządzenia utwórz wpis o nazwie UpperFilters. W przypadku niższego filtru specyficznego dla urządzenia utwórz wpis o nazwie LowerFilters. Na przykład poniższy fragment INF instaluje exampleFilterDriver jako górny filtr sterownika 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
Instalowanie sterownika filtru klasy
Aby zainstalować górny lub dolny filtr klasy konfiguracyjnej urządzenia, można dostarczyć aplikację do instalacji urządzeń, która instaluje niezbędne usługi. Aplikacja może następnie zarejestrować usługę jako filtr górny lub dolny dla wybranych klas konfiguracji urządzeń. Aby skopiować pliki binarne usługi, aplikacja może użyć polecenia SetupInstallFilesFromInfSection. Aby zainstalować usługi, aplikacja może użyć polecenia SetupInstallServicesFromInfSection. Aby zarejestrować serwisy jako górne i/lub dolne filtry dla określonych klas konfiguracji urządzeń, aplikacja wywołuje SetupInstallFromInfSection dla każdej z interesujących nas klas konfiguracji urządzeń, używając klucza rejestru pobranego z SetupDiOpenClassRegKey dla parametru RelativeKeyRoot. Rozważmy na przykład następujące sekcje 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
Aplikacja do instalacji urządzenia:
Wywołaj metodę SetupInstallFilesFromInfSection dla sekcji [upperfilter_inst].
Wywołaj SetupInstallServicesFromInfSection dla sekcji [upperfilter_inst.Services].
Należy wywołać SetupInstallFromInfSection dla sekcji [upperfilter_inst], raz dla każdego z kluczy klasy, dla których chce się zarejestrować usługę upperfilt.
Każde wywołanie określa SPINST_REGISTRY dla argumentu Flags, wskazując, że należy wykonać tylko modyfikacje rejestru.