We are using Difx to install driver (KMDF) on win-xp (32 and 64) and Win7.
The normal, pre-installation is working expected on Windows-xp-32 and windows7.
However on Windows-64 machine, the pre-installation is failing. (it actually installs the driver (verified from drvstore) but when device is connected it shows device with yellow mark and after few seconds new h/w found wizard pops-up.
The driver is self signed. and OS is WinXp professional x64 Ed Ver2003 SP2.
The command used for installation:
DIFxCmd64.exe /p <myinf.inf> 16
setupapi log says: “My_usb_PreCoInst.dll not found”, we are not providing this file however there is a different co-installer file: My_CoInstaller.dll we used.
--------------------- [SetupAPI Log] OS Version = 5.2.3790 Service Pack 2 Platform ID = 2 (NT) Service Pack = 2.0 Suite = 0x0100 Product Type = 1 Architecture = amd64 [2011/03/14 14:14:42 692.3] #-199 Executing “C:\Program Files\My Driver\DIFxCmd64.exe” with command line: DIFxCmd64.exe /p .\Xp\MyUSBF.INF 16 #W361 An unsigned, incorrectly signed, or Authenticode™ signed file “C:\WINDOWS\system32\DRVSTORE\MyUSBF_FF60FCCF9E4C6C0E50BD182B5FF89C14B9C16270\MyUSBF.cat” will be installed (Policy=Ignore). Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. [2011/03/14 14:14:43 2412.3] #-199 Executing “C:\Program Files\My Driver\DIFxCmd64.exe” with command line: DIFxCmd64.exe /p .\PP-Xp\MyUSBPP.INF 16 #W361 An unsigned, incorrectly signed, or Authenticode™ signed file “C:\WINDOWS\system32\DRVSTORE\MyUSBPP_C9927F42A804F59D3E4848D645B855EC424025B1\MyUSBPP.cat” will be installed (Policy=Ignore). Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. [2011/03/14 14:15:05 376.3 Driver Install] #-019 Searching for hardware ID(s): usb\VID_xxxx&pid_yyyy&rev_0100,usb\VID_xxxx&pid_yyyy #-018 Searching for compatible ID(s): usb\class_0a&subclass_00&prot_00,usb\class_0a&subclass_00,usb\class_0a #-198 Command line processed: C:\WINDOWS\system32\services.exe #I022 Found “USB\VID_xxxx&pid_yyyy” in C:\WINDOWS\inf\oem8.inf; Device: “Vx520 USB UART Device”; Driver: “Vx520 USB UART Device”; Provider: “My Inc.”; Mfg: “My Inc.”; Section name: “My.Install”. #I087 Driver node not trusted, rank changed from 0x00000001 to 0x00008001. #I023 Actual install section: [My.Install.NTAMD64]. Rank: 0x00008001. Driver date: 01/25/2011. Version: 7600.16385.1.1. #I393 Modified INF cache “C:\WINDOWS\inf\INFCACHE.1”. #-148 Loading coinstaller modules for “USB Device”. #E358 An unsigned, incorrectly signed, or Authenticode™ signed file “C:\WINDOWS\system32\My_usb_PreCoInst.dll” for driver “USB Device” blocked (server install). Error 2: The system cannot find the file specified. #E161 Processing of call to class installer failed. Error 2: The system cannot find the file specified. [2011/03/14 14:15:07 1112.2] #-199 Executing “C:\WINDOWS\system32\rundll32.exe” with command line: rundll32.exe newdev.dll,ClientSideInstall \.\pipe\PNP_Device_Install_Pipe_0.{6F789A0D-376A-4A4D-AFCA-B59FD37A08F6} #I060 Set selected driver. #-019 Searching for hardware ID(s): usb\VID_xxxx&pid_yyyy&rev_0100,usb\VID_xxxx&pid_yyyy #-018 Searching for compatible ID(s): usb\class_0a&subclass_00&prot_00,usb\class_0a&subclass_00,usb\class_0a #I022 Found “USB\VID_xxxx&pid_yyyy” in C:\WINDOWS\inf\oem8.inf; Device: “Vx520 USB UART Device”; Driver: “Vx520 USB UART Device”; Provider: “My Inc.”; Mfg: “My Inc.”; Section name: “My.Install”. #I087 Driver node not trusted, rank changed from 0x00000001 to 0x00008001. #I023 Actual install section: [My.Install.NTAMD64]. Rank: 0x00008001. Driver date: 01/25/2011. Version: 7600.16385.1.1. #-148 Loading coinstaller modules for “USB Device”. #W360 An unsigned, incorrectly signed, or Authenticode™ signed file “C:\WINDOWS\system32\My_usb_PreCoInst.dll” for driver “USB Device” will be installed (Policy=Ignore). Error 2: The system cannot find the file specified. #E144 Loading module “C:\WINDOWS\system32\My_usb_PreCoInst.dll” failed. Error 126: The specified module could not be found. #-166 Device install function: DIF_SELECTBESTCOMPATDRV. #I063 Selected driver installs from section [My.Install] in “c:\windows\inf\oem8.inf”. #I320 Class GUID of device remains: {4D36E978-E325-11CE-BFC1-08002BE10318}. #I060 Set selected driver. #I058 Selected best compatible driver. ------------------------------------------------
#-199 Executing “C:\Program Files\My Driver\DIFxCmd64.exe” with command line:
DIFxCmd64.exe /p .\Xp\MyUSBF.INF 16 #W361 An unsigned, incorrectly signed, or Authenticode™ signed file
“C:\WINDOWS\system32>\DRVSTORE\MyUSBF_FF60FCCF9E4C6C0E50BD182B5FF89C14B9C16270>\MyU
SBF.cat” will be installed (Policy=Ignore). Error 0x800b0109: A certificate
chain processed, but terminated in a root certificate which is not trusted by
the trust provider.
Do you add the certificate into the localmachine root (or mark as “trusted publisher”) with certmgr.exe ?
We created certificate on one WinXp-32 PC
and from this signed cat file, extracted the certificate and installed in the target 64 PC under “trusted root CA” and “trusted publisher”.
Infact the cat file (on target 64 pc) showed as Valid with “MyCompanyCertStore” certificate.
Hi Steven,
If you have a win 7 or Vista, try to install it with “disable driver signature” for confirm if it’s problem of certificate.
reboot machine, before windows loading, press F8 and select “Disable driver verifier”
The problem was on XP 64 bit edition (W2K3). Signed drivers are not
required. Was the 64 bit driver installed and not the 32 bit driver?
Bill Wandel
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com
Sent: Monday, March 14, 2011 11:26 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Pre-installation on Win64 failing
Hi Steven,
If you have a win 7 or Vista, try to install it with “disable driver
signature” for confirm if it’s problem of certificate.
reboot machine, before windows loading, press F8 and select “Disable driver
verifier”
Test signing should have no effect on 64 bit XP/W2K3. I don’t test sign
anymore. For Vista and up I boot with the F8 option or have the debugger
attached.
Bill Wandel
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Monday, March 14, 2011 12:10 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Pre-installation on Win64 failing
Thanks Bill,
The problem was on XP 64 bit edition (W2K3). Signed drivers are not
required.
Means I need to try without test signing the driver?
Was the 64 bit driver installed and not the 32 bit driver?
Yes we do maintain separate drivers for xp32 and xp64 as per INF sections.
We are using Difx to install driver (KMDF) on win-xp (32 and 64) and Win7.
The normal, pre-installation is working expected on Windows-xp-32 and windows7.
However on Windows-64 machine, the pre-installation is failing. (it actually installs the driver (verified from drvstore) but when device is connected it shows device with yellow mark and after few seconds new h/w found wizard pops-up.
The driver is self signed. and OS is WinXp professional x64 Ed Ver2003 SP2.
The command used for installation:
DIFxCmd64.exe /p <myinf.inf> 16 > > setupapi log says: “My_usb_PreCoInst.dll not found”, we are not providing this file however there is a different co-installer file: My_CoInstaller.dll we used.
I’m confused by your post. If your INF file is referring to My_usb_PreCoInst.dll, as this log indicated, then why are you not providing it?
It says it is grabbing oem8.inf. Is it possible that INF is left over from some previous version of your driver, and you didn’t update the version number so it is still using the old INF?
– Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.</myinf.inf>
Even I was surprised, there is no such file (My_usb_PreCoInst.dll) referred in my INF.
I scanned all the inf files for this referrence (c:\windows\inf).
but my INF uses differnt co-installer file name: My_CoInstaller.dll,
and not My_usb_PreCoInst.dll
Here is the latest log after trying difx on different WinXp-x64 machine:
[SetupAPI Log]
OS Version = 5.2.3790 Service Pack 2
Platform ID = 2 (NT)
Service Pack = 2.0
Suite = 0x0100
Product Type = 1
Architecture = amd64
[2011/03/17 18:29:28 992.3] #-199 Executing “C:\Program Files\My Driver\DIFxCmd64.exe” with command line: DIFxCmd64.exe /p .\Xp\MyUSBF.INF 16 #W367 An unsigned, incorrectly signed, or Authenticode™ signed file “C:\WINDOWS\system32\DRVSTORE\MyUSBF_950F52525E995F8CFA41BEDA16039641F160A6B4\MyUSBF.cat” for will be installed (Policy=Warn, user said ok). Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
Looks like, " A certificate chain processed, but terminated in a root certificate" …
…test signed cat file won’t work on WinXp64.
Is there any other option? Or I need to wait for WHQL certification completion so that it will get replaced by WHQL provided sign?
Here is the latest log after trying difx on different WinXp-x64 machine:
[SetupAPI Log]
OS Version = 5.2.3790 Service Pack 2
Platform ID = 2 (NT)
Service Pack = 2.0
Suite = 0x0100
Product Type = 1
Architecture = amd64
[2011/03/17 18:29:28 992.3] #-199 Executing “C:\Program Files\My Driver\DIFxCmd64.exe” with command line: DIFxCmd64.exe /p .\Xp\MyUSBF.INF 16 #W367 An unsigned, incorrectly signed, or Authenticode™ signed file “C:\WINDOWS\system32\DRVSTORE\MyUSBF_950F52525E995F8CFA41BEDA16039641F160A6B4\MyUSBF.cat” for will be installed (Policy=Warn, user said ok). Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
Looks like, " A certificate chain processed, but terminated in a root certificate" …
…test signed cat file won’t work on WinXp64.
Yes, it works. That’s not a fatal error. The driver will be installed,
you just get the warning. It even says so: “user said ok”. Your
hardware should work just fine after this.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Yes, But I pushed the driver after I saw yellow mark and popup window for new h/w found wizard.
Thats why “user said ok” msg is coming…
My question, when I installed the driver with difx preinstall and there is corresponding folder in DRVSTORE, when I connect the actual device, why still yellow mark and " new h/w found wizard" popup window has to come?
It should get loaded automatic ideally? correct me