I am just wondering is it possible to install an UMDF upper filter driver
for a raw PDO that is created for sideband communication for a HID device?
If so, is there any samples in DDK that can be referenced?
Thanks.
G
d
"gti4ever" <gti4...@discussions.microsoft.com> wrote in message
news:7E84870B-6A43-4B7B...@microsoft.com...
I have another question. I created a generic UMDF driver which can be
installed as a FDO on top of a regular KMDF driver.
However, when I tried to install it as a FDO for the raw PDO, I got an error
saying "Windows successfully loaded the device driver for this hardware but
cannot find the hardware device. (Code 41)".
Any idea?
G.
"Doron Holan [MSFT]" wrote:
> .
>
d
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"gti4ever" <gti4...@discussions.microsoft.com> wrote in message
news:816B2458-6062-4A34...@microsoft.com...
If you don't mind, I'd like to ask you a design question. The driver that I
was experimenting with is actually a virtual HID minidriver, that is why I
need a raw PDO to send test data to it.
I am just wondering, is it possible to create a regular UMDF + KMDF hybrid
driver and use that KMDF driver to enumerate a raw PDO as a HID minidriver?
Can this be done? I just want to get your opinion before I start implement it.
Thanks.
d
--
This posting is provided "AS IS" with no warranties, and confers no rights.
"gti4ever" <gti4...@discussions.microsoft.com> wrote in message
news:8F10B932-3508-4F25...@microsoft.com...
I thought the problem went away but it turned out it only worked for Win 7.
Under XP, I am still getting the "cannot find the hardware device (0x41)"
error.
I used Devcon for the installation since it is a virtual driver. Here is
part of the log file that related to the raw PDO:
#I124 Doing copy-only install of
"{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [testDevice1.Inst.NT.Interfaces] from
"c:\windows\inf\oem37.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of
"{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01".
#I163 Device not started: Device has problem: 0x29:
CM_PROB_LEGACY_SERVICE_NO_DEVICES.
#I121 Device install of
"{E7F5CFF5-E2C2-4A85-BE17-1951F347E07F}\TESTDEVICE\1&2D595CA7&26&01" finished
successfully.
Is there a limitation on XP that prevent this from working?
Thanks.
"gti4ever" <gti4...@discussions.microsoft.com> wrote in message
news:8DACB208-1FA8-41CB...@microsoft.com...
Here is the INF file. It is basically a combination of WDK virtual HID mini
driver and UMDF filter driver INF files.
[Version]
Signature="$WINDOWS NT$"
Class=HIDClass
ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider=%VENDOR%
CatalogFile=test.cat
LayoutFile=Layout.inf
DriverVer=09/21/2009,6.1.7600.16385
;
; Layout.inf (etc.) list all files shipped with the operating system so the
; source description sections are only needed if other files are needed.
;
; In order to use IHV drivers, the SourceDisksNames section must list the
; disk(s) containing the drivers and the SourceDisksFiles section must list
; which disk number each file to be copied is found on.
; Disk number 99 is used to avoid a conflict with the disk numbers defined
; in layout.inf
;
; Files used in a driver installation need to be digitally signed otherwise
; installation may fail. See documentation elsewhere in the DDK regarding
; driver signing.
[SourceDisksNames.x86]
99 = %DISK_NAME%,,,\i386
[SourceDisksNames.amd64]
99 = %DISK_NAME%,,,\amd64
[SourceDisksFiles]
KMDFTest.sys = 99
hidkmdf.sys = 99
WdfCoInstaller01009.dll = 99
[DestinationDirs]
CopyFilesSYS = 12 ; should it be 10 to take care of 98 stuff??????
CopyFilesDLL = 11 ;
CopyFunctionDriver = 12 ;
[Manufacturer]
%VENDOR%=Vendor,NTx86,NTia64,NTAMD64,NTAMD64.6.1,NTx86.6.1
; For XP and later
[Vendor.NTx86]
%test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
[Vendor.NTx86.6.1]
%test% = test.Inst.Win7, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
[Vendor.NTia64]
%test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
[Vendor.NTAMD64]
%test% = test.Inst, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
[Vendor.NTAMD64.6.1]
%test% = test.Inst.Win7, {7D6DE072-9104-464f-BEF9-5730D4E631E2}\HID_DEVICE
%testDevice% = testDevice.Inst, HID\testVirtualDevice
%testDevice1% = testDevice1.Inst,
{E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
[ControlFlags]
ExcludeFromSelect = {E7F5CFF5-E2C2-4a85-BE17-1951F347E07F}\testDevice
;--------------------------------------------
;Windows 7 only
;
;-------------------------------------------------
;[test.Inst.Win7]
[test.Inst.Win7.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL
[test.Inst.Win7.NT.HW]
AddReg = test_Win7_Parameters.AddReg
[test.Inst.Win7.NT.Services]
AddService = test,0x00000002,test_Service_Inst
[test_Win7_Parameters.AddReg]
HKR,,"UpperFilters",0x00010000,"mshidkmdf"
;===============================================================
; test install section till Windows Vista
;===============================================================
;[test.Inst]
[test.Inst.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL,CopyFunctionDriver
[test.Inst.NT.HW]
AddReg = test_Parameters.AddReg
[test.Inst.NT.Services]
AddService = test,0x00000002,test_Service_Inst,
AddService = hidkmdf,, HidShim_Service_Inst
[CopyFunctionDriver]
hidkmdf.sys
[test_Parameters.AddReg]
HKR,,"UpperFilters",0x00010000,"hidkmdf"
; -------------- devlower Driver install section
[HidShim_Service_Inst]
DisplayName = %HIDSHIM.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\hidkmdf.sys
LoadOrderGroup = PNP Filter
;---------------------------------------------------
;Common section
;----------------------------------------------------
[CopyFilesSYS]
KMDFTest.sys
[CopyFilesDLL]
WdfCoInstaller01009.dll
[test_Service_Inst]
DisplayName = %test%
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_DEMAND_START%
ErrorControl = %SERVICE_ERROR_IGNORE%
ServiceBinary = %12%\KMDFTest.sys
;===============================================================
; testDevice install section
; - Only a Null service is installed.
;===============================================================
[testDevice.Inst]
[testDevice.Inst.NT]
[testDevice.Inst.NT.Services]
AddService = ,0x00000002, ; NULL Service
;===============================================================
; testDevice install section
; - Only a Null service is installed.
;===============================================================
;[testDevice1.Inst]
[testDevice1.Inst.NT]
CopyFiles = UMDriverCopy
[testDevice1.Inst.NT.hw]
AddReg=testDevice1_AddReg
[testDevice1.Inst.NT.CoInstallers]
AddReg=CoInstaller_AddReg
CopyFiles=CoInstaller_CopyFiles
[testDevice1.Inst.NT.Services]
AddService = WUDFRd,,WUDFRD_ServiceInstall
[testDevice1.Inst.NT.Wdf]
UmdfService="UMDFTest", UMDFTest_Install
UmdfServiceOrder=UMDFTest
[UMDriverCopy]
UMDFTest.dll
[testDevice1_AddReg]
HKR,,"UpperFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ |
FLG_ADDREG_APPEND
[WUDFRD_ServiceInstall]
DisplayName = %WudfRdDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base
[UMDFTest_Install]
UmdfLibraryVersion=1.9.0
DriverCLSID = "{6247DF9B-6C7B-4aee-9935-DB7CA478BCDD}"
ServiceBinary = "%12%\UMDF\UMDFTest.dll"
[DestinationDirs]
UMDriverCopy=12,UMDF ; copy to drivers\umdf
[SourceDisksFiles]
WdfCoInstaller01009.dll = 99
WudfUpdate_01009.dll = 99
UMDFTest.dll = 99
[CoInstaller_CopyFiles]
WdfCoInstaller01009.dll
WudfUpdate_01009.dll
[CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01009.dll"
;================================================================
;--- WDF Coinstaller installation ------
;
[DestinationDirs]
test.Inst_CoInstaller_CopyFiles = 11
[test.Inst.NT.CoInstallers]
AddReg=test.Inst_CoInstaller_AddReg
CopyFiles=test.Inst_CoInstaller_CopyFiles
[test.Inst_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01009.dll,WdfCoInstaller"
[test.Inst_CoInstaller_CopyFiles]
wdfcoinstaller01009.dll
[SourceDisksFiles]
wdfcoinstaller01009.dll=99 ; make sure the number matches with
SourceDisksNames
[test.Inst.NT.Wdf]
KmdfService = test, test_wdfsect
[test_wdfsect]
KmdfLibraryVersion = 1.9
[Strings]
; *******Localizable Strings*******
VENDOR = "Microsoft"
test = "test virtual HID device"
testDevice = "test Virtual HID Device"
testDevice1 = "test Virtual HID Device raw PDO"
DISK_NAME = "test HID Device Install Disk"
HIDSHIM.SVCDESC= "Service for HID-KMDF Shim layer"
WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework
Reflector"
; *******Non Localizable Strings*******
SERVICE_BOOT_START = 0x0
SERVICE_SYSTEM_START = 0x1
SERVICE_AUTO_START = 0x2
SERVICE_DEMAND_START = 0x3
SERVICE_DISABLED = 0x4
SERVICE_KERNEL_DRIVER = 0x1
SERVICE_ERROR_IGNORE = 0x0
SERVICE_ERROR_NORMAL = 0x1
SERVICE_ERROR_SEVERE = 0x2
SERVICE_ERROR_CRITICAL = 0x3
REG_EXPAND_SZ = 0x00020000
REG_DWORD = 0x00010001
REG_MULTI_SZ = 0x00010000
REG_BINARY = 0x00000001
REG_SZ = 0x00000000
> [testDevice1.Inst.NT.Services]
> AddService = WUDFRd,,WUDFRD_ServiceInstall
"gti4ever" <gti4...@discussions.microsoft.com> wrote in message
news:7F7520CF-767E-4FD1...@microsoft.com...