Aracılığıyla paylaş


INF Dosyasında Yansıtıcıyı Belirtme

Windows 11'den başlayarak, çekirdek modu cihaz yığınına yansıtıcıyı (WUDFRd.sys) eklemenin önerilen yolu, UMDF sürücüsünün INF dosyasında sistem tarafından sağlanan WudfRd.inf dosyasına başvurmaktır.

Uyarı

WudfRd.inf yalnızca Windows 11 ve sonraki sürümlere dahildir.

Windows 10 ve önceki sürümlerde, yansıtıcıyı (WUDFRd.sys) eklemek için, bir UMDF sürücünün INF dosyası INF DDInstall.Services bölümündeAddService yönergesini ve ayrıca bir hizmet yükleme bölümünü içermelidir. Bu yöntem Windows 11 ve sonraki sürümlerde çalışmaya devam etse de önerilmez.

Her iki yöntemde de yansıtıcı, kullanıcı modu yığınının yapılandırmasına bağlı olarak bir üst filtre, daha düşük bir filtre veya cihaz için hizmet olabilir.

WudfRd.inf dosyasına başvurma (Windows 11 ve üzeri)

Bu tekniği kullanan örnek bir INF dosyasını echoum.inxbulabilirsiniz. Alternatif olarak, aşağıdaki kod parçacıklarından birini kullanın.

WudfRd hizmetini cihazın işlev sürücüsü olarak yüklemek için:

[DDInstall]
Include=WUDFRD.inf
Needs=WUDFRD.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD.NT.Services
; also include any existing any DDInstall.Services directives

WudfRd hizmetini üst filtre sürücüsü olarak yüklemek için:

[DDInstall] 
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.Services
; also include any existing any DDInstall.Services directives

[DDInstall.Filters]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.Filters

WudfRd hizmetini daha düşük bir filtre sürücüsü olarak yüklemek için:

[DDInstall] 
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.Services
; also include any existing any DDInstall.Services directives

[DDInstall.Filters]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.Filters

AddService yönergesi kullanma (Windows 10 ve öncesi)

Aşağıdaki kod örneği, UMDF işlev sürücüsünün INF dosyasının yansıtıcıyı nasıl ekleyebileceğini gösterir.

[Skeleton_Install.Services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

Bu örnekte sürücü, yansıtıcıyı çekirdek modunda cihaz yığınında "işlev sürücüsü" olarak atamak için 0x2 (SPSVCINST_ASSOCSERVICE) bayrağını (bayrakları ve parametresi ile OR işlemi yapılmış olarak) belirtir.

AddService yönergesi, hizmet için önceden var olan yapılandırmaların üzerine yazılmasını önlemek için 0x000001f8 bayraklarını da ayarlar. Bu bayraklar hakkında daha fazla bilgi için, AddService yönergesininbayrakları parametresine bakın.

WUDFVhidmini örneğinden alınan aşağıdaki kod örneği, UMDF filtre sürücüsü için AddService yönergesini gösterir.

[hidumdf.win8.NT.Services]
AddService=WUDFRd,0x000001f8,WUDFRD_ServiceInstall  
AddService=mshidumdf, 0x000001fa, mshidumdf.AddService

[WudfVhidmini_AddReg]
HKR,,"LowerFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND

Bu durumda, mshidumdf hizmeti, cihaz yığını için FDO ile ilişkilendirilir ve yansıtıcı, daha alt fonksiyonlu bir filtre görevi görür.

Hizmet yükleme bölümü temini

AddService yönergesi, aşağıdaki kod örneğine benzer bir service-install-section'a başvurur. ServiceType girdisi, INF'nin bir veya daha fazla cihaz için destek yüklediğini gösteren 1 veya 0x00000001 belirtir. StartType girdisi, sürücünün ne zaman başlatılacaını belirtir. ErrorControl girdisi, sürücünün sağladığı hata denetimi düzeyini belirtir. ServiceBinary girdisi, hizmetin ikili dosyasının (yansıtıcı) yolunu belirtir.

[WUDFRD_ServiceInstall]
DisplayName = "Windows Driver Frameworks - User-mode Driver Framework Reflector"
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\WUDFRd.sys