I want to write a PCI bus filter driver. To read PCI config space and manipulate some registers. I've seen many post prior on this topi here. now I am little confuse, I want to know is it possible to write a PCI bus filter driver KMDF way??
because I have written a filter driver to PCI but unable to install it for *PNP0a03, may be I've not written the INF correctly.
can some one please help.
"
[Version]
Signature=“$WINDOWS NT$”
Class=System
ClassGuid={4D36E97D-E325-11CE-BFC1-08002BE10318}
Provider=%TEST%
CatalogFile=PCIFltr.cat
DriverVer = 07/14/2025,1.0.0.1
PnpLockdown=1
;*************************
; Source file information
;*************************
[SourceDisksNames]
1 = %DiskName%,“”
[SourceDisksFiles]
PCIFltr.sys = 1,
[DestinationDirs]
DefaultDestDir = 12 ;system32/drivers
[ControlFlags]
ExcludeFromSelect=*
;*****************************************
; filter Install Section
;*****************************************
[Manufacturer]
%TEST%=Standard,NTamd64
[Standard.NTamd64]
%filter.DeviceDesc%=FilterInstall, *PNP0a03
[FilterInstall]
Include=machine.inf
Needs=PCI_DRV
CopyFiles=FilterInstall.Copy
[FilterInstall.Copy]
PCIFltr.sys
[FilterInstall.HW]
Include=machine.inf
Needs=PCI_DRV.HW
AddReg=FilterInstall.HW.AddReg
[FilterInstall.HW.AddReg]
HKR,“UpperFilters”,0x00010008,“PCIFltr”
[FilterInstall.Services]
;Do not specify SPSVCINST_ASSOCSERVICE on filter drivers.
Include=machine.inf
Needs=PCI_DRV.Services
AddService=PCIFltr,ufilter_Service_Inst
[ufilter_Service_Inst]
DisplayName = %ufilter.SvcName%
Description = %ufilter.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\PCIFltr.sys
LoadOrderGroup = “PnP Filter”
[Strings]
TEST=“Storage Systems Inc.”
DiskName = “Filter Installation Disk”
filter.DeviceDesc = “PCI Upstream Port”
ufilter.SvcName = “PCI Upper Filter”
ufilter.SvcDesc = “PCI Upper Filter Service”