Selecting Best Compatible Driver (Windows XP)




We have a driver package that is installed by when our software is
installed. It is installed in to the Driver Store using the
DriverPackagePreinstall function. The drivers are for a USB communication
adapter for an industrial network. Because it is a custom driver class it
can’t be tested by Microsoft’ hardware lab. All the files are digitally
signed and the catalog file is signed as well. In most cases the driver
install fine when the USB adapter is plugged into the system.

We recently found a problem with a system that was taking 10 minutes to
search for the driver. We looked at the setupapi.log file and found that the
system was scanning a DVD we happened to have in the drive. The DVD happened
to have a lot of files as well as 270 INF files on it. I did some research
and found that only the path specified in the
HKLM\Software\Microsoft\Windows\CurrentVersion DevicePath is supposed to be
searched. The only path specified was %SystemRoot%\INF. Our INF file was in
the Windows\INF directory and that was the INF file that was used after the
search.

My question is why does the DVD get searched when it isn’t specified in the
search path? Is there a way to stop it (this doesn’t happen on Vista
systems). Also, the setupapi.log file gives many warnings indicating that the
driver isn’t signed when all files and the catalog file are correctly signed.
Is this a bug that will be fixed or is the fact that the file is signed not
detected for some reason?

See part of the setupapi.log file below.

Thanks,
--
Brian


[SetupAPI Log]
OS Version = 5.1.2600 Service Pack 2
Platform ID = 2 (NT)
Service Pack = 2.0
Suite = 0x0100
Product Type = 1
Architecture = x86
[2008/05/08 12:22:13 620.3 Driver Install]
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\Vid_5854&Pid_9005&Rev_0001" in C:\WINDOWS\inf\oem4.inf;
Device: "Schneider Electric USB Controller"; Driver: "Schneider Electric USB
Controller"; Provider: "Cyberlogic Technologies, Inc."; Mfg: "Schneider
Automation, Inc."; Section name: "TSXCUSBMBP_Install".
#I087 Driver node not trusted, rank changed from 0x00000000 to 0x00008000.
#I023 Actual install section: [TSXCUSBMBP_Install.NT]. Rank: 0x00008000.
Effective driver date: 03/28/2008.
#I393 Modified INF cache "C:\WINDOWS\inf\INFCACHE.1".
#-147 Loading class installer module for "USB Device".
#E358 An unsigned or incorrectly signed file "C:\WINDOWS\system32\MbxCi.dll"
for driver "USB Device" blocked (server install). Error 0x800b0110: The
certificate is not valid for the requested usage.
Windows could not load the installer for MODICON_MBX. Contact your hardware
vendor for assistance. Error 0x800b0110: The certificate is not valid for the
requested usage.
[2008/05/08 12:22:15 1596.2]
#-199 Executing "C:\WINDOWS\system32\rundll32.exe" with command line:
rundll32.exe newdev.dll,ClientSideInstall
\\.\pipe\PNP_Device_Install_Pipe_0.{65BD9C5E-9D98-4A4E-A54E-3BD028DDE1D6}
#I060 Set selected driver.
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#I022 Found "USB\Vid_5854&Pid_9005&Rev_0001" in C:\WINDOWS\inf\oem4.inf;
Device: "Schneider Electric USB Controller"; Driver: "Schneider Electric USB
Controller"; Provider: "Cyberlogic Technologies, Inc."; Mfg: "Schneider
Automation, Inc."; Section name: "TSXCUSBMBP_Install".
#I087 Driver node not trusted, rank changed from 0x00000000 to 0x00008000.
#I023 Actual install section: [TSXCUSBMBP_Install.NT]. Rank: 0x00008000.
Effective driver date: 03/28/2008.
#-147 Loading class installer module for "USB Device".
#E360 An unsigned or incorrectly signed file "C:\WINDOWS\system32\MbxCi.dll"
for driver "USB Device" will be installed (Policy=Ignore). Error 0x800b0110:
The certificate is not valid for the requested usage.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [TSXCUSBMBP_Install] in
"c:\windows\inf\oem4.inf".
#I320 Class GUID of device remains: {01F5ED20-0BCB-11D4-A02A-00E0290C8B76}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#I060 Set selected driver.
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#I022 Found "USB\Vid_5854&Pid_9005&Rev_0001" in C:\WINDOWS\inf\oem4.inf;
Device: "Schneider Electric USB Controller"; Driver: "Schneider Electric USB
Controller"; Provider: "Cyberlogic Technologies, Inc."; Mfg: "Schneider
Automation, Inc."; Section name: "TSXCUSBMBP_Install".
#I087 Driver node not trusted, rank changed from 0x00000000 to 0x00008000.
#I023 Actual install section: [TSXCUSBMBP_Install.NT]. Rank: 0x00008000.
Effective driver date: 03/28/2008.
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#-019 Searching for hardware ID(s):
usb\vid_5854&pid_9005&rev_0001,usb\vid_5854&pid_9005
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
.



Relevant Pages

  • Re: Want to Protect my Software - Recommendations?
    ... hardware anonymity to the process. ... I've also noticed the Macrovision driver has gone ... Windows Server 2003 and Windows XP..." ... I want to protect my software such that upon invocation of installer, ...
    (sci.crypt)
  • HP 3650 wont install
    ... #-019 Searching for hardware ID: ... #-018 Searching for compatible ID: ... Effective driver date: 07/01/2001. ... #-166 Device install function: DIF_SELECTBESTCOMPATDRV. ...
    (microsoft.public.windowsxp.print_fax)
  • Re: SP4 did not complete the upgrade
    ... Searching for hardware ID: sw\ ... Device: Microsoft WINMM WDM Audio Compatibility ... Driver; Driver: Microsoft WINMM WDM Audio Compatibility Driver; Provider: ...
    (microsoft.public.win2000.windows_update)
  • RE: RIS/RIPREP Image problem with Dell Poweredge 2950 - W2k3 SP2
    ... third party driver into the RIS image and then test to see if it can help. ... Microsoft Global Technical Support Center ... | #-018 Searching for compatible ID: ... | #-166 Device install function: ...
    (microsoft.public.windows.server.setup)
  • Re: Getting drivers from MS Update site
    ... It is completing so fast that I don't believe that it is going online to check for the latest driver. ... Manager, for my VIA USB2 Enhanced entry, and Windows Update reports ... My installer CD, is an OEM WinXP SP3 installer, purchased several ... USB2 driver for their hardware.) ...
    (microsoft.public.windowsxp.hardware)