Aracılığıyla paylaş


Filtre sürücüsü yükleme

PnP filtre sürücüsü belirli bir cihazı veya cihaz kurulum sınıfındaki tüm cihazları destekleyebilir ve cihazın işlev sürücüsünün altına (daha düşük bir filtre) veya bir cihazın işlev sürücüsünün üzerine (üst filtre) bağlanabilir. PnP sürücü katmanları hakkında daha fazla bilgi için bkz . WDM sürücüleri türleri .

Cihaza özgü bir filtre sürücüsü yükleme

Windows 10 sürüm 1903 ve sonraki sürümlerde, bir INF DDInstall.Filters bölümündenINF AddFilter yönergesi kullanılarak cihaza özgü bir filtre sürücüsü kaydedilebilir. Daha fazla bilgi için Cihaz filtre sürücüsü sıralaması bölümüne bakın.

Windows'un önceki sürümlerinde, cihaza özgü bir filtre sürücüsü kaydetmek için, DDInstall içindeki AddReg girdisi aracılığıyla bir kayıt defteri girdisi oluşturun. Cihazın INF dosyasının HW bölümü. Cihaza özgü bir üst filtre için UpperFilters adlı bir giriş oluşturun. Cihaza özgü düşük bir filtre için LowerFilters adlı bir girdi oluşturun. Örneğin, aşağıdaki INF alıntısı ExampleFilterDriver'ıExampleFunctionDriver sürücüsüne üst filtre olarak yükler:

[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

Sınıf filtresi sürücüsü yükleme

Bir cihaz kurulum sınıfı için sınıf genelinde üst veya alt filtre yüklemek için, gerekli hizmetleri yükleyen bir cihaz yükleme uygulaması sağlayabilirsiniz. Uygulama daha sonra hizmeti istenen cihaz kurulum sınıfları için üst veya alt filtre olarak kaydedebilir. Uygulama, hizmet ikili dosyalarını kopyalamak için SetupInstallFilesFromInfSection kullanabilir. Uygulama, hizmetleri yüklemek için SetupInstallServicesFromInfSection kullanabilir. Hizmetleri belirli cihaz kurulum sınıfları için üst ve/veya alt filtreler olarak kaydetmek için uygulama, RelativeKeyRoot parametresi için SetupDiOpenClassRegKey'den aldıkları kayıt defteri anahtarı tutamacını kullanarak ilgilendiğiniz her cihaz kurulum sınıfı için SetupInstallFromInfSection'ı çağırır. Örneğin, aşağıdaki INF bölümlerini göz önünde bulundurun:

[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

Cihaz yükleme uygulaması şunu yapar:

  1. [upperfilter_inst] bölümü için SetupInstallFilesFromInfSection öğesini çağırın.

  2. SetupInstallServicesFromInfSection öğesini [upperfilter_inst.Services] bölümü için çağırın.

  3. [upperfilter_inst] bölümü için SetupInstallFromInfSection çağrısını yapın; upperfilt hizmetini kaydetmek istediği her bir sınıf anahtarı için bir kez.

Her çağrıda, yalnızca kayıt defteri değişikliklerinin gerçekleştirilmesi gerektiğini belirtmek için Flags bağımsız değişkenine SPINST_REGISTRY belirtilir.