I’m afraid this is a bit of a “please do my homework for me” question; but I hope someone might point me in the right direction… I am trying to understand user mode drivers and figured that putting a filter driver on the virtual serial sample would be a nice simple fun thing to do. wrong on all counts. So, I bang my head on the desk and plead:- “please help me figure why this INF file does not work”. I am struggling to mentally merge the (scant) documentation about this (https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/installing-a-umdf-filter-driver) and the USB UMDF filter example into something that works… sigh
;
; VirtualSerial.inf with a filter?
;
;
; WudfUpdate: GetDriverDetailsData: SetupDiGetSelectedDriver: status(E0000203) <no error text>
; WudfUpdate: Error getting details about driver being installed - status(E0000203) <no error text>.
;
; great :(
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%ProviderString%
CatalogFile=WUDF.cat
DriverVer=03/25/2005,0.0.0.1
[Manufacturer]
%ManufacturerString%=Microsoft,NT$ARCH$
[Microsoft.NT$ARCH$]
%VirtualSerialDeviceName%=VirtualSerial_Install,UMDF\VirtualSerial
[SourceDisksFiles]
MyUMDFVirtualFilter.dll=1
Virtualserial.dll=1
WudfUpdate_$UMDFCOINSTALLERVERSION$.dll=1
[SourceDisksNames]
1 = %MediaDescription%
; =================== UMDF VirtualSerial Device ==================================
[VirtualSerial_Install.NT]
CopyFiles=UMDriverCopy
; ?
; Include=WINUSB.INF ; Import sections from WINUSB.INF
; Needs=WINUSB.NT ; Run the CopyFiles & AddReg directives for WinUsb.INF
[VirtualSerial_Install.NT.hw]
[VirtualSerial_Install.NT.Services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall
; ?
; AddService=WinUsb,0x000001f8,WinUsb_ServiceInstall ; this service is installed because its a filter.
; AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall
[VirtualSerial_Install.NT.CoInstallers]
CopyFiles=CoInstallers_CopyFiles
AddReg=CoInstallers_AddReg
[VirtualSerial_Install.NT.Wdf]
UmdfService=VirtualSerial,VirtualSerial_Install
UmdfService=MyUMDFVirtualFilter,MyUMDFVirtualFilter_Install
UmdfServiceOrder=VirtualSerial,MyUMDFVirtualFilter
UmdfKernelModeClientPolicy = AllowKernelModeClients
UmdfFileObjectPolicy = AllowNullAndUnknownFileObjects
UmdfFsContextUsePolicy = CannotUseFsContexts
[VirtualSerial_Install]
UmdfLibraryVersion=$UMDFVERSION$
ServiceBinary=%12%\UMDF\Virtualserial.dll
DriverCLSID={C8ECC087-6B79-4de5-8FB4-C03358A29617}
[WUDFRD_ServiceInstall]
DisplayName = %WudfRdDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
[MyUMDFVirtualFilter_Install]
UmdfLibraryVersion=$UMDFVERSION$
ServiceBinary=%12%\UMDF\MyUMDFVirtualFilter.dll
[CoInstallers_CopyFiles]
WudfUpdate_$UMDFCOINSTALLERVERSION$.dll
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WUDFUpdate_$UMDFCOINSTALLERVERSION$.dll"
[DestinationDirs]
UMDriverCopy=12,UMDF ; copy to drivers\UMDF
CoInstallers_CopyFiles=11
[UMDriverCopy]
Virtualserial.dll
MyUMDFVirtualFilter.dll
; =================== Generic ==================================
[Strings]
ProviderString="TODO-Set-Provider"
ManufacturerString="TODO-Set-Manufacturer"
MediaDescription="Microsoft Sample Driver Installation Media"
WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector"
VirtualSerialDeviceName="Microsoft VirtualSerial User-Mode Device Sample"
any pointers greatly appreciated,
thanks
Jolyon