From: john on
Hi,

My device need setup 2 drivers, one driver manage USB
communication with device, the other is a virtual HID class driver
which enumerate some HID devices such as keyboard, mouse and so on.
2 drivers can be installed and work normanlly on windows MCE OS,
WINXP 64 bit OS and Vista RC2 32 bit OS.



Now, I need setup this 2 drivers on Vista 64 bit OS. I known that
every driver on Vista 64 bit OS require to pass digital signatures.
Through pressing F8 key after OS started, I can disable the digital
signatures for a while for testing my driver. unfortunately, I only
can setup the USB driver, the HID driver always return failure.





My HID class driver is based on the VHIDMINI driver, it locate in
these directory {system disk}\WINDDK\5744\src\hid\vhidmini\sys. I
have tried to setup the VHIDMINI driver by running ''devcon'' tool,
It also return failure. Can someone try to install it on VISTA 64 bit
OS?





I check the setupapi.dev.log, it report "Installing NULL driver"
information and other information. I don't understand it. I think
that some infomation in inf file bring out.



I attached these inf and sys files for reference. Any additional
links or information will be greatly appreciated!



Lejianz,
john at cwtek.com.tw


THE inf file's content:


[Version]
Signature="$CHICAGO$"
Class=HIDClass
ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider=%VENDOR%
CatalogFile=vhidmini.cat
;LayoutFile=layout.inf
DriverVer=09/21/2006,6.0.5736.1

;
; 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.

[SourceDisksFiles]
vhidmini.sys = 99



[SourceDisksNames.x86]
99 = %DISK_NAME%,,,\i386

;[SourceDisksNames.ia64]
;99 = %DISK_NAME%,,,\ia64

[SourceDisksNames.amd64]
99 = %DISK_NAME%,,,\amd64




[DestinationDirs]
CopyFilesSYS = 12 ; should it be 10 to take care of 98 stuff??????
CopyFilesDLL = 11 ; %SystemRoot%\system or system32 - 98 or
Win2000
CopyFilesSYS_98 = 10, system32/drivers

[Manufacturer]
%VENDOR%=Vendor, NTx86, NTia64, NTamd64

; For Win2K
[Vendor]
%VHidMini% = VHidMini.Inst,
{D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
%VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice

; For XP and later
[Vendor.NTx86]
%VHidMini% = VHidMini.Inst,
{D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
%VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice

[Vendor.NTia64]
%VHidMini% = VHidMini.Inst,
{D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
%VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice

[Vendor.NTamd64]
%VHidMini% = VHidMini.Inst,
{D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
%VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice


[ControlFlags]
ExcludeFromSelect = HID\MyVirtualHidDevice

;===============================================================
; VHidMini (Root Enumerated Hid Device) install section
;===============================================================
[VHidMini.Inst]
CopyFiles = CopyFilesSYS_98, CopyFilesDLL
AddReg = VHidMini_98me.AddReg

[VHidMini.Inst.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL

[VHidMini.Inst.NT.HW]
AddReg = VHidMini_Parameters.AddReg

[VHidMini.Inst.NT.Services]
AddService = vhidmini,0x00000002,vhidmini_Service_Inst,

[CopyFilesSYS]
vhidmini.sys
;HidClass.sys
;HidParse.sys


[CopyFilesSYS_98]
vhidmini.sys
HidClass.sys
HidParse.sys

[CopyFilesDLL]
Hid.dll

[VHidMini_Parameters.AddReg]
HKR,,"ReadFromRegistry",%REG_DWORD%, 0x00000001
HKR,,"MyReportDescriptor",%REG_BINARY%, 06, 00, FF, 09, 01, A1, 01,
85, 01, 09, 01, 15, 00, 26, ff, 00, 75, 08, 95, 01, B1, 00, 09, 01,
15, 00, 26, FF, 00, 75, 08, 95, 01, B1, 00, 09, 01, 75, 08, 95, 01,
81,00, C0

[VHidMini_98me.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,"vhidmini.sys"

[vhidmini_Service_Inst]
DisplayName = %VHidMini%
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_DEMAND_START%
ErrorControl = %SERVICE_ERROR_IGNORE%
ServiceBinary = %12%\vhidmini.sys

;===============================================================
; VHidDevice (Virtual Hid Device) install section
; - Only a Null service is installed.
;===============================================================
[VHidDevice.Inst]

[VHidDevice.Inst.NT]

[VHidDevice.Inst.NT.Services]
AddService = ,0x00000002, ; NULL Service


;================================================================
[Strings]
; *******Localizable Strings*******
VENDOR = "Microsoft Corp"
VHidMini = "Root Enumerated Hid Device (sample)"
VHidDevice = "Virtual Hid Device (sample)"
DISK_NAME = "Virtual Hid Device Sample Install Disk"
; *******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










From: John Zou on
I check the inf/setupapi.dev.log file and found that the source path in the
section below is error.

flq: SourcePath -
[C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02\佰#]
flq: SourceFile - [HidClass.sys]
flq: Flags - 0x00000000
flq: {SPFILENOTIFY_NEEDMEDIA}
flq: {SPFILENOTIFY_NEEDMEDIA - exit(0x00000000)}
!!! flq: SPFILENOTIFY_NEEDMEDIA: returned FILEOP_ABORT.
!!! flq: Error 2: The system cannot find the file specified.


HidClass.sys and HidParse.sys is supplied by Vista System, the source file
exclude them. So the OS can only find them in input.inf according to
compalitable ID.

But the path input.inf_85616b02\佰# is not EXISTED.

Someone can tell why? How do I modified the Vhidmini.inf ?

Thanks a lot.



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
I listed the setupapi.dev.log file below.

[Device Install Log]
OS Version = 6.0.6000
Service Pack = 0.0
Suite = 0x0100
ProductType = 1
Architecture = amd64

[BeginLog]

>>> [Device Install (UpdateDriverForPlugAndPlayDevices) -
>>> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE]
>>> Section start 2006/12/18 15:19:54.691
cmd: devcon install vhidmini.inf
"{D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE"
dvi: Set selected driver complete.
dvi: {Build Driver List} 15:19:54.751
dvi: Searching for hardware ID(s):
dvi: {d49f883c-6486-400a-8c22-1a9ef48577e4}\hid_device
dvi: Processing a single INF: 'c:\vhidmini\vhidmini.inf'
inf: Opened INF: 'c:\vhidmini\vhidmini.inf' ([strings] <src =
normal>)
sig: {_VERIFY_FILE_SIGNATURE} 15:19:54.756
sig: Key = vhidmini.inf
sig: FilePath = c:\vhidmini\vhidmini.inf
sig: Catalog = c:\vhidmini\vhidmini.cat
! sig: Verifying file against specific (valid) catalog failed!
(0x800b0109)
! sig: Error 0x800b0109: A certificate chain processed, but
terminated in a root certificate which is not trusted by the trust provider.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 15:19:54.865
sig: {_VERIFY_FILE_SIGNATURE} 15:19:54.865
sig: Key = vhidmini.inf
sig: FilePath = c:\vhidmini\vhidmini.inf
sig: Catalog = c:\vhidmini\vhidmini.cat
! sig: Verifying file against specific Authenticode(tm) catalog
failed! (0x800b0100)
! sig: Error 0x800b0100: No signature was present in the
subject.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0100)} 15:19:54.869
dvi: Created Driver Node:
dvi: HardwareID -
{D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
dvi: InfName - c:\vhidmini\vhidmini.inf
dvi: DevDesc - Root Enumerated Hid Device (sample)
dvi: DrvDesc - Root Enumerated Hid Device (sample)
dvi: Provider - Microsoft Corp
dvi: Mfg - Microsoft Corp
dvi: ModelsSec - Vendor.NTamd64
dvi: InstallSec - VHidMini.Inst
dvi: ActualSec - VHidMini.Inst.NT
dvi: Rank - 0x80ff0000
dvi: Signer - Not digitally signed
dvi: Signer Score - Not digitally signed
dvi: DrvDate - 09/21/2006
dvi: Version - 6.0.5736.1
dvi: {Build Driver List - exit(0x00000000)} 15:19:54.875
dvi: {DIF_SELECTBESTCOMPATDRV} 15:19:54.875
dvi: No class installer for 'Human Interface Devices'
dvi: No CoInstallers found
dvi: Default installer: Enter 15:19:54.876
dvi: {Select Best Driver}
dvi: Selected driver installs from section
[VHidMini.Inst] in 'c:\vhidmini\vhidmini.inf'.
dvi: Class GUID of device remains:
{745a17a0-74d3-11d0-b6fe-00a0c90f57da}.
dvi: Set selected driver complete.
dvi: Selected:
dvi: Description - [Root Enumerated Hid Device
(sample)]
dvi: InfFile - [c:\vhidmini\vhidmini.inf]
dvi: Section - [VHidMini.Inst]
dvi: Signer - [Not digitally signed]
dvi: Rank - [0x80ff0000]
dvi: {Select Best Driver - exit(0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 15:19:54.882
inf: {SetupCopyOEMInf: c:\vhidmini\vhidmini.inf} 15:19:54.883
inf: Opened INF: 'c:\vhidmini\vhidmini.inf' ([strings] <src =
normal>)
inf: Opened INF: 'c:\vhidmini\vhidmini.inf' ([strings] <src =
normal>)
! inf: Package was already in store: skipping Driver Store add
inf: Driver Store location:
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf
inf: Published Inf Path: C:\Windows\INF\oem40.inf
inf: OEM source media location: c:\vhidmini\
inf: {SetupCopyOEMInf exit (0x00000000)} 15:19:54.969
dvi: Searching for hardware ID(s):
dvi: {d49f883c-6486-400a-8c22-1a9ef48577e4}\hid_device
inf: Opened PNF:
'C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf'
([strings] <src=drvstore>)
sig: {_VERIFY_FILE_SIGNATURE} 15:19:54.974
sig: Key = vhidmini.inf
sig: FilePath =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf
sig: Catalog =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.cat
! sig: Verifying file against specific (valid) catalog failed!
(0x800b0109)
! sig: Error 0x800b0109: A certificate chain processed, but
terminated in a root certificate which is not trusted by the trust provider.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 15:19:54.978
sig: {_VERIFY_FILE_SIGNATURE} 15:19:54.979
sig: Key = vhidmini.inf
sig: FilePath =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf
sig: Catalog =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.cat
! sig: Verifying file against specific Authenticode(tm) catalog
failed! (0x800b0100)
! sig: Error 0x800b0100: No signature was present in the subject.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0100)} 15:19:54.982
dvi: Selected driver installs from section [VHidMini.Inst] in
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'.
dvi: Class GUID of device remains:
{745a17a0-74d3-11d0-b6fe-00a0c90f57da}.
dvi: Set selected driver complete.
dvi: {Plug and Play Service: Device Install for ROOT\HIDCLASS\0000}
ump: Creating Install Process: DrvInst.exe 15:19:54.986
ndv: Infpath=C:\Windows\INF\oem40.inf
ndv:
DriverNodeName=vhidmini.inf:Vendor.NTamd64:VHidMini.Inst:6.0.5736.1:{d49f883c-6486-400a-8c22-1a9ef48577e4}\hid_device
ndv:
DriverStorepath=C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf
ndv: Building driver list from driver node strong name...
dvi: Searching for hardware ID(s):
dvi: {d49f883c-6486-400a-8c22-1a9ef48577e4}\hid_device
inf: Opened PNF:
'C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf'
([strings] <src=drvstore>)
sig: {_VERIFY_FILE_SIGNATURE} 15:19:55.012
sig: Key = vhidmini.inf
sig: FilePath =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf
sig: Catalog =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.cat
! sig: Verifying file against specific (valid) catalog failed!
(0x800b0109)
! sig: Error 0x800b0109: A certificate chain processed, but
terminated in a root certificate which is not trusted by the trust provider.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 15:19:55.088
sig: {_VERIFY_FILE_SIGNATURE} 15:19:55.088
sig: Key = vhidmini.inf
sig: FilePath =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.inf
sig: Catalog =
C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55\vhidmini.cat
! sig: Verifying file against specific Authenticode(tm) catalog
failed! (0x800b0100)
! sig: Error 0x800b0100: No signature was present in the
subject.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0100)} 15:19:55.091
dvi: Selected driver installs from section [VHidMini.Inst] in
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'.
dvi: Class GUID of device remains:
{745a17a0-74d3-11d0-b6fe-00a0c90f57da}.
dvi: Set selected driver complete.
ndv: {Core Device Install}
inf: Opened PNF: 'C:\Windows\INF\oem40.inf' ([strings]
<src=oempath>)
pol: Device installation is subject to policy
dvi: {DIF_ALLOW_INSTALL} 15:19:55.102
dvi: No class installer for 'Root Enumerated Hid Device
(sample)'
dvi: No CoInstallers found
dvi: Default installer: Enter 15:19:55.104
dvi: Default installer: Exit
dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 15:19:55.105
ndv: Installing files...
dvi: {DIF_INSTALLDEVICEFILES} 15:19:55.106
dvi: No class installer for 'Root Enumerated Hid Device
(sample)'
dvi: Default installer: Enter 15:19:55.107
dvi: {Install FILES}
inf: Opened PNF:
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'
([strings] <src=drvstore>)
inf: {Install Inf Section [VHidMini.Inst.NT]}
inf: CopyFiles=CopyFilesSYS,CopyFilesDLL
(vhidmini.inf line 82)
cpy: Open PnpLockdownPolicy: Err=2. This
is OK. Use LockDownPolicyDefault
flq: QueueSingleCopy...
flq: Inf :
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'
flq: SourceInf:
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'
flq: SourceSection: [sourcedisksfiles]
flq: Source root path based on SourceInf
flq: SourceRootPath:
'C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55'
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00000000
flq: SourceRootPath -
'C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55'
flq: SourcePath - '\amd64'
flq: SourceFilename - 'vhidmini.sys'
flq: TargetDirectory-
'C:\Windows\system32\DRIVERS'
flq: TargetFilename - 'vhidmini.sys'
flq: SourceDesc - 'Virtual Hid
Device Sample Install Disk'
flq: {FILE_QUEUE_COPY exit(0x00000000)}
flq: QueueSingleCopy...
flq: Inf :
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'
! flq: Missing
SourceDisksFiles/SourceDisksNames information from INF.
! flq: Default INBOX source locations
pulled from pre-built DrvIndex
flq: SourceRootPath:
'C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02'
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00000000
flq: SourceRootPath -
'C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02'
flq: SourcePath - '佰#\'
flq: SourceFilename - 'HidClass.sys'
flq: TargetDirectory-
'C:\Windows\system32\DRIVERS'
flq: TargetFilename - 'HidClass.sys'
flq: {FILE_QUEUE_COPY exit(0x00000000)}
flq: QueueSingleCopy...
flq: Inf :
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'
! flq: Missing
SourceDisksFiles/SourceDisksNames information from INF.
! flq: Default INBOX source locations
pulled from pre-built DrvIndex
flq: SourceRootPath:
'C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02'
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00000000
flq: SourceRootPath -
'C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02'
flq: SourcePath - '佰#\'
flq: SourceFilename - 'HidParse.sys'
flq: TargetDirectory-
'C:\Windows\system32\DRIVERS'
flq: TargetFilename - 'HidParse.sys'
flq: {FILE_QUEUE_COPY exit(0x00000000)}
flq: QueueSingleCopy...
flq: Inf :
'c:\windows\system32\driverstore\filerepository\vhidmini.inf_8ca6be55\vhidmini.inf'
! flq: Missing
SourceDisksFiles/SourceDisksNames information from INF.
flq: Source root path based on Main INF
flq: SourceRootPath:
'C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55'
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00000000
flq: SourceRootPath -
'C:\Windows\System32\DriverStore\FileRepository\vhidmini.inf_8ca6be55'
flq: SourceFilename - 'Hid.dll'
flq: TargetDirectory-
'C:\Windows\system32'
flq: TargetFilename - 'Hid.dll'
flq: {FILE_QUEUE_COPY exit(0x00000000)}
inf: {Install Inf Section [VHidMini.Inst.NT]
exit (0x00000000)}
dvi: Processing co-installer registration
section [VHidMini.Inst.NT.CoInstallers].
inf: {Install Inf Section
[VHidMini.Inst.NT.CoInstallers]}
inf: No (Copy/Ren/Del)Files directives
found
inf: {Install Inf Section
[VHidMini.Inst.NT.CoInstallers] exit (0x00000000)}
dvi: Co-installers registered.
dvi: {Install INTERFACES}
dvi: Installing section
[VHidMini.Inst.NT.Interfaces]
dvi: {Install INTERFACES exit 00000000}
dvi: {Install FILES exit (0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_INSTALLDEVICEFILES - exit(0x00000000)} 15:19:55.139
ndv: Pruning file queue...
dvi: {_SCAN_FILE_QUEUE}
flq: ScanQ flags=620
flq: SPQ_SCAN_PRUNE_COPY_QUEUE
flq: SPQ_SCAN_FILE_COMPARISON
flq: SPQ_SCAN_ACTIVATE_DRP
flq: ScanQ number of copy nodes=4
flq: File 'C:\Windows\system32\DRIVERS\vhidmini.sys'
pruned from copy.
sig: Using catalog
'C:\Windows\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\oem27.CAT'.
! sig: VerifyTrustFailed for
C:\Windows\system32\DRIVERS\vhidmini.sys.
! sig: Error 0x800b0109: A certificate chain processed,
but terminated in a root certificate which is not trusted by the trust
provider.
cpy: DrpSetRegFileProt
'C:\Windows\system32\DRIVERS\vhidmini.sys' Status=0 Class=OEM Legacy
flq: File 'C:\Windows\system32\Hid.dll' pruned from
copy.
! cpy: Drp target file 'C:\Windows\system32\Hid.dll' is
owned by TI
flq: ScanQ action=200 DoPruning=32
flq: ScanQ end Validity flags=620 CopyNodes=2
dvi: {_SCAN_FILE_QUEUE exit(0, 0x00000000)}
ndv: Committing file queue...
flq: {_COMMIT_FILE_QUEUE}
flq: CommitQ DelNodes=0 RenNodes=0 BackNodes=0
CopyNodes=2
flq: {SPFILENOTIFY_STARTQUEUE}
flq: {SPFILENOTIFY_STARTQUEUE - exit(0x00000001)}
flq: {SPFILENOTIFY_STARTSUBQUEUE}
flq: {SPFILENOTIFY_STARTSUBQUEUE - exit(0x00000001)}
flq: SPFILENOTIFY_NEEDMEDIA:
flq: SourcePath -
[C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02\佰#]
flq: SourceFile - [HidClass.sys]
flq: Flags - 0x00000000
flq: {SPFILENOTIFY_NEEDMEDIA}
flq: {SPFILENOTIFY_NEEDMEDIA - exit(0x00000000)}
!!! flq: SPFILENOTIFY_NEEDMEDIA: returned FILEOP_ABORT.
!!! flq: Error 2: The system cannot find the file specified.
flq: {SPFILENOTIFY_ENDQUEUE}
flq: {SPFILENOTIFY_ENDQUEUE - exit(0x00000001)}
! bak: Install failed, attempting to restore original
files.
flq: {_COMMIT_FILE_QUEUE exit(0x00000002)}
ndv: Device install status=0x00000002
ndv: Performing device install final cleanup...
! ndv: Queueing up error report since device installation
failed...
ndv: {Core Device Install - exit(0x00000002)}
ump: Server install process exited with code 0x00000002
15:19:55.178
ump: {Plug and Play Service: Device Install exit(00000002)}
ndv: Device Install failed for new device...installing NULL driver.
dvi: {Plug and Play Service: Device Install for ROOT\HIDCLASS\0000}
ump: Creating Install Process: DrvInst.exe 15:20:13.978
! ndv: Installing NULL driver!
dvi: Set selected driver complete.
pol: Device installation is subject to policy
dvi: {DIF_ALLOW_INSTALL} 15:20:13.991
dvi: No class installer for 'Human Interface Devices'
dvi: No CoInstallers found
dvi: Default installer: Enter 15:20:13.993
dvi: Default installer: Exit
dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 15:20:13.994
dvi: {DIF_INSTALLDEVICE} 15:20:13.994
dvi: No class installer for 'Human Interface Devices'
dvi: Default installer: Enter 15:20:13.996
! dvi: Installing NULL driver!
! dvi: A NULL driver installation is not allowed for this
type of device!
!!! dvi: Cleaning up failed installation (e0000219)
!!! dvi: Default installer: failed!
!!! dvi: Error 0xe0000219: The installation failed because a
function driver was not specified for this device instance.
dvi: {DIF_INSTALLDEVICE - exit(0xe0000219)} 15:20:13.999
ump: Server install process exited with code 0xe0000219
15:20:14.005
ump: {Plug and Play Service: Device Install exit(e0000219)}
dvi: {Build Driver List} 15:20:14.007
! dvi: Driver list already built
dvi: {Build Driver List - exit(0x00000000)} 15:20:14.007
dvi: {DIF_SELECTBESTCOMPATDRV} 15:20:14.008
dvi: No class installer for 'Root Enumerated Hid Device (sample)'
dvi: Default installer: Enter 15:20:14.009
dvi: {Select Best Driver}
dvi: Selected driver installs from section
[VHidMini.Inst] in 'c:\vhidmini\vhidmini.inf'.
dvi: Class GUID of device remains:
{745a17a0-74d3-11d0-b6fe-00a0c90f57da}.
dvi: Set selected driver complete.
dvi: Selected:
dvi: Description - [Root Enumerated Hid Device
(sample)]
dvi: InfFile - [c:\vhidmini\vhidmini.inf]
dvi: Section - [VHidMini.Inst]
dvi: Signer - [Not digitally signed]
dvi: Rank - [0x80ff0000]
dvi: {Select Best Driver - exit(0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 15:20:14.014
dvi: {DIF_NEWDEVICEWIZARD_FINISHINSTALL} 15:20:14.015
dvi: No class installer for 'Root Enumerated Hid Device (sample)'
dvi: Default installer: Enter 15:20:14.016
dvi: Default installer: Exit
dvi: {DIF_NEWDEVICEWIZARD_FINISHINSTALL - exit(0xe000020e)}
15:20:14.016
<<< Section end 2006/12/18 15:20:14.017
<<< [Exit status: SUCCESS]




----- Original Message -----
From: <john(a)cwtek.com.tw>
Newsgroups: microsoft.public.development.device.drivers
Sent: Thursday, December 14, 2006 3:32 PM
Subject: How to install VHIDMINI driver program on VISTA 64BIT OS


> Hi,
>
> My device need setup 2 drivers, one driver manage USB
> communication with device, the other is a virtual HID class driver
> which enumerate some HID devices such as keyboard, mouse and so on.
> 2 drivers can be installed and work normanlly on windows MCE OS,
> WINXP 64 bit OS and Vista RC2 32 bit OS.
>
>
>
> Now, I need setup this 2 drivers on Vista 64 bit OS. I known that
> every driver on Vista 64 bit OS require to pass digital signatures.
> Through pressing F8 key after OS started, I can disable the digital
> signatures for a while for testing my driver. unfortunately, I only
> can setup the USB driver, the HID driver always return failure.
>
>
>
>
>
> My HID class driver is based on the VHIDMINI driver, it locate in
> these directory {system disk}\WINDDK\5744\src\hid\vhidmini\sys. I
> have tried to setup the VHIDMINI driver by running ''devcon'' tool,
> It also return failure. Can someone try to install it on VISTA 64 bit
> OS?
>
>
>
>
>
> I check the setupapi.dev.log, it report "Installing NULL driver"
> information and other information. I don't understand it. I think
> that some infomation in inf file bring out.
>
>
>
> I attached these inf and sys files for reference. Any additional
> links or information will be greatly appreciated!
>
>
>
> Lejianz,
> john at cwtek.com.tw
>
>
> THE inf file's content:
>
>
> [Version]
> Signature="$CHICAGO$"
> Class=HIDClass
> ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
> Provider=%VENDOR%
> CatalogFile=vhidmini.cat
> ;LayoutFile=layout.inf
> DriverVer=09/21/2006,6.0.5736.1
>
> ;
> ; 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.
>
> [SourceDisksFiles]
> vhidmini.sys = 99
>
>
>
> [SourceDisksNames.x86]
> 99 = %DISK_NAME%,,,\i386
>
> ;[SourceDisksNames.ia64]
> ;99 = %DISK_NAME%,,,\ia64
>
> [SourceDisksNames.amd64]
> 99 = %DISK_NAME%,,,\amd64
>
>
>
>
> [DestinationDirs]
> CopyFilesSYS = 12 ; should it be 10 to take care of 98 stuff??????
> CopyFilesDLL = 11 ; %SystemRoot%\system or system32 - 98 or
> Win2000
> CopyFilesSYS_98 = 10, system32/drivers
>
> [Manufacturer]
> %VENDOR%=Vendor, NTx86, NTia64, NTamd64
>
> ; For Win2K
> [Vendor]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
> ; For XP and later
> [Vendor.NTx86]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
> [Vendor.NTia64]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
> [Vendor.NTamd64]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
>
> [ControlFlags]
> ExcludeFromSelect = HID\MyVirtualHidDevice
>
> ;===============================================================
> ; VHidMini (Root Enumerated Hid Device) install section
> ;===============================================================
> [VHidMini.Inst]
> CopyFiles = CopyFilesSYS_98, CopyFilesDLL
> AddReg = VHidMini_98me.AddReg
>
> [VHidMini.Inst.NT]
> CopyFiles = CopyFilesSYS, CopyFilesDLL
>
> [VHidMini.Inst.NT.HW]
> AddReg = VHidMini_Parameters.AddReg
>
> [VHidMini.Inst.NT.Services]
> AddService = vhidmini,0x00000002,vhidmini_Service_Inst,
>
> [CopyFilesSYS]
> vhidmini.sys
> ;HidClass.sys
> ;HidParse.sys
>
>
> [CopyFilesSYS_98]
> vhidmini.sys
> HidClass.sys
> HidParse.sys
>
> [CopyFilesDLL]
> Hid.dll
>
> [VHidMini_Parameters.AddReg]
> HKR,,"ReadFromRegistry",%REG_DWORD%, 0x00000001
> HKR,,"MyReportDescriptor",%REG_BINARY%, 06, 00, FF, 09, 01, A1, 01,
> 85, 01, 09, 01, 15, 00, 26, ff, 00, 75, 08, 95, 01, B1, 00, 09, 01,
> 15, 00, 26, FF, 00, 75, 08, 95, 01, B1, 00, 09, 01, 75, 08, 95, 01,
> 81,00, C0
>
> [VHidMini_98me.AddReg]
> HKR,,DevLoader,,*ntkern
> HKR,,NTMPDriver,,"vhidmini.sys"
>
> [vhidmini_Service_Inst]
> DisplayName = %VHidMini%
> ServiceType = %SERVICE_KERNEL_DRIVER%
> StartType = %SERVICE_DEMAND_START%
> ErrorControl = %SERVICE_ERROR_IGNORE%
> ServiceBinary = %12%\vhidmini.sys
>
> ;===============================================================
> ; VHidDevice (Virtual Hid Device) install section
> ; - Only a Null service is installed.
> ;===============================================================
> [VHidDevice.Inst]
>
> [VHidDevice.Inst.NT]
>
> [VHidDevice.Inst.NT.Services]
> AddService = ,0x00000002, ; NULL Service
>
>
> ;================================================================
> [Strings]
> ; *******Localizable Strings*******
> VENDOR = "Microsoft Corp"
> VHidMini = "Root Enumerated Hid Device (sample)"
> VHidDevice = "Virtual Hid Device (sample)"
> DISK_NAME = "Virtual Hid Device Sample Install Disk"
> ; *******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
>
>
>
>
>
>
>
>
>
>

<john(a)cwtek.com.tw> wrote in message
news:rfu1o2duph62dbq9488efvda3nhrbrk70h(a)4ax.com...
> Hi,
>
> My device need setup 2 drivers, one driver manage USB
> communication with device, the other is a virtual HID class driver
> which enumerate some HID devices such as keyboard, mouse and so on.
> 2 drivers can be installed and work normanlly on windows MCE OS,
> WINXP 64 bit OS and Vista RC2 32 bit OS.
>
>
>
> Now, I need setup this 2 drivers on Vista 64 bit OS. I known that
> every driver on Vista 64 bit OS require to pass digital signatures.
> Through pressing F8 key after OS started, I can disable the digital
> signatures for a while for testing my driver. unfortunately, I only
> can setup the USB driver, the HID driver always return failure.
>
>
>
>
>
> My HID class driver is based on the VHIDMINI driver, it locate in
> these directory {system disk}\WINDDK\5744\src\hid\vhidmini\sys. I
> have tried to setup the VHIDMINI driver by running ''devcon'' tool,
> It also return failure. Can someone try to install it on VISTA 64 bit
> OS?
>
>
>
>
>
> I check the setupapi.dev.log, it report "Installing NULL driver"
> information and other information. I don't understand it. I think
> that some infomation in inf file bring out.
>
>
>
> I attached these inf and sys files for reference. Any additional
> links or information will be greatly appreciated!
>
>
>
> Lejianz,
> john at cwtek.com.tw
>
>
> THE inf file's content:
>
>
> [Version]
> Signature="$CHICAGO$"
> Class=HIDClass
> ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
> Provider=%VENDOR%
> CatalogFile=vhidmini.cat
> ;LayoutFile=layout.inf
> DriverVer=09/21/2006,6.0.5736.1
>
> ;
> ; 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.
>
> [SourceDisksFiles]
> vhidmini.sys = 99
>
>
>
> [SourceDisksNames.x86]
> 99 = %DISK_NAME%,,,\i386
>
> ;[SourceDisksNames.ia64]
> ;99 = %DISK_NAME%,,,\ia64
>
> [SourceDisksNames.amd64]
> 99 = %DISK_NAME%,,,\amd64
>
>
>
>
> [DestinationDirs]
> CopyFilesSYS = 12 ; should it be 10 to take care of 98 stuff??????
> CopyFilesDLL = 11 ; %SystemRoot%\system or system32 - 98 or
> Win2000
> CopyFilesSYS_98 = 10, system32/drivers
>
> [Manufacturer]
> %VENDOR%=Vendor, NTx86, NTia64, NTamd64
>
> ; For Win2K
> [Vendor]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
> ; For XP and later
> [Vendor.NTx86]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
> [Vendor.NTia64]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
> [Vendor.NTamd64]
> %VHidMini% = VHidMini.Inst,
> {D49F883C-6486-400a-8C22-1A9EF48577E4}\HID_DEVICE
> %VHidDevice% = VHidDevice.Inst, HID\MyVirtualHidDevice
>
>
> [ControlFlags]
> ExcludeFromSelect = HID\MyVirtualHidDevice
>
> ;===============================================================
> ; VHidMini (Root Enumerated Hid Device) install section
> ;===============================================================
> [VHidMini.Inst]
> CopyFiles = CopyFilesSYS_98, CopyFilesDLL
> AddReg = VHidMini_98me.AddReg
>
> [VHidMini.Inst.NT]
> CopyFiles = CopyFilesSYS, CopyFilesDLL
>
> [VHidMini.Inst.NT.HW]
> AddReg = VHidMini_Parameters.AddReg
>
> [VHidMini.Inst.NT.Services]
> AddService = vhidmini,0x00000002,vhidmini_Service_Inst,
>
> [CopyFilesSYS]
> vhidmini.sys
> ;HidClass.sys
> ;HidParse.sys
>
>
> [CopyFilesSYS_98]
> vhidmini.sys
> HidClass.sys
> HidParse.sys
>
> [CopyFilesDLL]
> Hid.dll
>
> [VHidMini_Parameters.AddReg]
> HKR,,"ReadFromRegistry",%REG_DWORD%, 0x00000001
> HKR,,"MyReportDescriptor",%REG_BINARY%, 06, 00, FF, 09, 01, A1, 01,
> 85, 01, 09, 01, 15, 00, 26, ff, 00, 75, 08, 95, 01, B1, 00, 09, 01,
> 15, 00, 26, FF, 00, 75, 08, 95, 01, B1, 00, 09, 01, 75, 08, 95, 01,
> 81,00, C0
>
> [VHidMini_98me.AddReg]
> HKR,,DevLoader,,*ntkern
> HKR,,NTMPDriver,,"vhidmini.sys"
>
> [vhidmini_Service_Inst]
> DisplayName = %VHidMini%
> ServiceType = %SERVICE_KERNEL_DRIVER%
> StartType = %SERVICE_DEMAND_START%
> ErrorControl = %SERVICE_ERROR_IGNORE%
> ServiceBinary = %12%\vhidmini.sys
>
> ;===============================================================
> ; VHidDevice (Virtual Hid Device) install section
> ; - Only a Null service is installed.
> ;===============================================================
> [VHidDevice.Inst]
>
> [VHidDevice.Inst.NT]
>
> [VHidDevice.Inst.NT.Services]
> AddService = ,0x00000002, ; NULL Service
>
>
> ;================================================================
> [Strings]
> ; *******Localizable Strings*******
> VENDOR = "Microsoft Corp"
> VHidMini = "Root Enumerated Hid Device (sample)"
> VHidDevice = "Virtual Hid Device (sample)"
> DISK_NAME = "Virtual Hid Device Sample Install Disk"
> ; *******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
>
>
>
>
>
>
>
>
>
>

From: chris.aseltine on
John Zou wrote:

> I check the inf/setupapi.dev.log file and found that the source path in the
> section below is error.
>
> flq: SourcePath -
> [C:\Windows\System32\DriverStore\FileRepository\input.inf_85616b02\ä½°#]
>
> HidClass.sys and HidParse.sys is supplied by Vista System, the source file
> exclude them. So the OS can only find them in input.inf according to
> compalitable ID.
>
> But the path input.inf_85616b02\ä½°# is not EXISTED.

I've also seen Vista spew 8-bit garbage into setupapi.log when it can't
find an inbox driver that you're trying to reference manually in your
INF. I don't know if this is a bug or not.

The solution I've always used is to tweak your LayoutFile= or Includes=
(or whatever) directives so that Setup can find the inbox driver.

Try LayoutFile=layout.inf,input.inf or similar.