Driver not recognized even with correct INF

Hello All,

I am having a weird problem when I try to install a USB device on a particular machine. I call it a weird problem because it works on other machines with the same OS (Windows XP Pro) without any issues.
When I try intsalling it on this particular machine, it is not able to recognize the device id in the INF file and says “There are no compatible drivers for the device”.

Here is the setupapi log file with verbose logging

#-199 Executing “C:\WINDOWS\system32\rundll32.exe” with command line: rundll32.exe newdev.dll,DevInstall USB\Vid_1158&Pid_0001\5&392a6d75&0&2
@ 15:57:44.806 #I060 Set selected driver.
#-019 Searching for hardware ID(s): usb\vid_1158&pid_0001&rev_0001,usb\vid_1158&pid_0001
#-018 Searching for compatible ID(s): usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
@ 15:57:44.821 #V017 Enumerating files “C:\WINDOWS\inf”.
@ 15:57:44.821 #V392 Using INF cache “C:\WINDOWS\inf\INFCACHE.1”.
@ 15:57:44.821 #V073 Cache: Excluding INF “accessor.inf”.
@ 15:57:44.821 #V073 Cache: Excluding INF “agtinst.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “apcompat.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “appmig.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “apps.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “asroc.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “au.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “axant5.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “bda.inf”.
@ 15:57:44.837 #V073 Cache: Excluding INF “biosinfo.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “branches.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “camdsh20.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “certclas.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “communic.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “comnt5.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “corelist.inf”.
@ 15:57:44.853 #V073 Cache: Excluding INF “defltwk.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “devxprop.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “dfrg.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “dimaps.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “drm.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “drvindex.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “dshowext.inf”.
@ 15:57:44.868 #V073 Cache: Excluding INF “dtcnt5.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “dwup.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “Erma.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “fltmgr.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “font.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “fp40ext.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “fsvgaadd.inf”.
@ 15:57:44.884 #V073 Cache: Excluding INF “fsvgadel.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “fxsocm.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “games.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “icminst.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “icwnt5.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “ie.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “ieaccess.inf”.
@ 15:57:44.900 #V073 Cache: Excluding INF “iereset.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “igames.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “iis.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “ims.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “intl.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “java.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “koc.inf”.
@ 15:57:44.915 #V073 Cache: Excluding INF “ks.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “kscaptur.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “layout.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “legcydrv.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “mdac.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “mdmgl001.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “mdmgl002.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “mdmgl003.inf”.
@ 15:57:44.931 #V073 Cache: Excluding INF “mdmgl004.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “mdmgl005.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “mdmgl006.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “mdmgl007.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “mdmgl008.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “mdmgl009.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “mdmgl010.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “medctroc.inf”.
@ 15:57:44.946 #V073 Cache: Excluding INF “minioc.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “mmopt.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “moviemk.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “mplayer2.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “mqsysoc.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “msinfo32.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “msmqocm.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “msmsgs.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “msnetmtg.inf”.
@ 15:57:44.962 #V073 Cache: Excluding INF “msnmsn.inf”.
@ 15:57:44.978 #V073 Cache: Excluding INF “msoe50.inf”.
@ 15:57:44.978 #V073 Cache: Excluding INF “mstask.inf”.
@ 15:57:44.978 #V073 Cache: Excluding INF “multimed.inf”.
@ 15:57:44.978 #V073 Cache: Excluding INF “multiprt.inf”.
@ 15:57:44.978 #V073 Cache: Excluding INF “mwremove.inf”.
@ 15:57:44.978 #V073 Cache: Excluding INF “mymusic.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netbeac.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netcis.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netclass.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netfw.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netfxocm.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netias.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netiprip.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netlpd.inf”.
@ 15:57:44.993 #V073 Cache: Excluding INF “netoc.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “netsnmp.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “nettpsmp.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “netupnp.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “netupnph.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “oeaccess.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “oem7.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “oobe.inf”.
@ 15:57:45.009 #V073 Cache: Excluding INF “optional.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “pchealth.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “phdsext.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “pinball.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “pmxmcro.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “printupg.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “prtupg9x.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “qmgr.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “quickmksax.inf”.
@ 15:57:45.025 #V073 Cache: Excluding INF “rootau.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “sapi5.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “sceregvl.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “secdrv.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “secrecs.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “setupqry.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “shell.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “shl_img.inf”.
@ 15:57:45.040 #V073 Cache: Excluding INF “skins.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “sr.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “srchasst.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “srusbusd.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “sti.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “svcpack.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “swflash.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “syscomp.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “sysoc.inf”.
@ 15:57:45.056 #V073 Cache: Excluding INF “syssetup.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “tabletpc.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “tshoot.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “tsoc.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “vgx.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “wab50.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “wbemoc.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “wbemsnmp.inf”.
@ 15:57:45.071 #V073 Cache: Excluding INF “wmaccess.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wmdm.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wmfsdk.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wmp.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wmp11.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wmpocm.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wmtour.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wordpad.inf”.
@ 15:57:45.087 #V073 Cache: Excluding INF “wsh.inf”.
@ 15:57:45.087 #T075 Enumerating files: Directory pass completed.
@ 15:57:45.103 #V005 Opened the PNF file of “C:\WINDOWS\inf\synusbpk.inf” (Language = 0409).
@ 15:57:45.103 #T076 Enumerating files: Cache pass completed.
@ 15:57:45.103 #V166 Device install function: DIF_SELECTBESTCOMPATDRV.
@ 15:57:45.118 #V155 Executing default installer.
@ 15:57:45.118 #W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
@ 15:57:45.118 #W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
@ 15:57:47.712 #I060 Set selected driver.

If you see the logs, it opens the correct pnf file (synusbpk.inf) but still complains that no drivers are found.

I have tried cleaning up the infs and pnfs, the registry and infcache.1 file . Nothing seems to work.

Can anyone suggest some solution. I would like to know what else I need to do for installing it.

I appreciate your help.

thanks,

On 9/10/2009 5:39 PM, xxxxx@yahoo.com wrote:

I am having a weird problem when I try to install a USB device on a
particular machine. I call it a weird problem because it works on
other machines with the same OS (Windows XP Pro) without any issues.
[…]
Here is the setupapi log file with verbose logging

How about a setupapi.log file from a machine with a successful
install? Possibly seeing the difference gives some hints.

xxxxx@yahoo.com wrote:

Hello All,

I am having a weird problem when I try to install a USB device on a particular machine. I call it a weird problem because it works on other machines with the same OS (Windows XP Pro) without any issues.
When I try intsalling it on this particular machine, it is not able to recognize the device id in the INF file and says “There are no compatible drivers for the device”.

How are you “installing” the driver? The fact that the INF has your own
file name (synusbpk.inf) tells me that you are not installing it in the
proper way.

Can you post your INF?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hello,

Here is the INF. This is what I do. I plug in the USB device (our company’s proprietary device ) and when the "Found New Hardware’ comes up, I try to point to the directory with the INF. ( I have copied them to C:\WINDOWS\INF also. That didn’t work either). There are no conflicts with the device id. As I said, it works on other machines but just not this particular machine.

[Version]
Signature=“$CHICAGO$”
Class=USB
provider=%Cypress%
LayoutFile=layout.inf

[Manufacturer]
%Cypress%=Cypress

[Cypress]

%USB\VID_1158&PID_0001.DeviceDesc%=PKLDR.Dev, USB\VID_1158&PID_0001

%USB\VID_1158&PID_0101.DeviceDesc%=AFTERLDR.Dev, USB\VID_1158&PID_0101

[PreCopySection]
HKR,NoSetupUI,1

[DestinationDirs]
SYNUSB.Files.Ext = 10,System32\Drivers
SYNUSB.Files.Inf = 10,INF
SYNUSBDEV.Files.Ext = 10,System32\Drivers
SYNUSBDEV.Files.Inf = 10,INF
AFTERLDR.Files.Ext = 10,System32\Drivers
AFTERLDR.Files.Inf = 10,INF

[PKLDR.Dev.NT]
AddReg=PKLDR.AddReg

[PKLDR.AddReg]
HKR,DevLoader,*ntkern
HKR,NTMPDriver,synpkldr.sys

[PKLDR.AddService]
DisplayName = %PKLDR.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 2 ; SERVICE_AUTO_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\synpkldr.sys
LoadOrderGroup = Base

[PKLDR.Dev.NT.Services]
AddService = PKLDR, 0x00000002, PKLDR.AddService

[AFTERLDR.Dev.NT]
AddReg=AFTERLDR.AddReg

[AFTERLDR.AddReg]
HKR,DevLoader,*ntkern
HKR,NTMPDriver,synusb.sys

[AFTERLDR.AddService]
DisplayName = %AFTERLDR.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 2 ; SERVICE_AUTO_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\synusb.sys
LoadOrderGroup = Base

[AFTERLDR.Dev.NT.Services]
AddService = AFTERLDR, 0x00000002, AFTERLDR.AddService

And another weird thing is there is a new USB device which gets installed properly but not this one.
I don’t know if the INF is incorrect but how could it work on other machines if its an INF problem?

I appreciate your help.

Thanks a lot

>How about a setupapi.log file from a machine with a successful

install? Possibly seeing the difference gives some hints.

Dear Hagen Patzke ,

I checked the difference. The only difference I see is when it opens the PNF file of synusbpk.inf. It comes back saying found the device id USB_VIDxxxx_PIDxxxx and proceeds with the installation. But here, it doesn’t do that. Instead it says “There are no compatible drivers” . I don’t understand why it wouldn’t recognize the device id when it is present in the inf.

Do you have any other suggestions or pointers? I appreciate you time and help.

Thanks a lot,


( I have copied them to C:\WINDOWS\INF also. That didn’t work either)

Never, ever, do this. The system manages the contents of %windir%\inf.


Here is the INF.

If that is the entire INF then you are missing at least a [Strings] section
to define all of the replacement strings used in the other sections.

There is a fine tool in the WDK called ChkInf. I suggest you start there.

After that, turn on SetupAPI logging and look at the output in the log files
to determine what is wrong.

Good Luck,
Dave Cattley

Sorry about the missing Strings sections. Here it is.

[Strings]
Cypress=“Cypress Semiconductor”
USB\VID_1158&PID_0001.DeviceDesc=“Syn-Tech USB Board-Prokee”

SYNTECH=“STS Systems”
SYNUSB.SvcDesc=“STS General Purpose USB Driver (synusb.sys)”
SYNUSBDEV.SvcDesc=“Cypress General Purpose USB Driver (ezmon.sys)”

PKLDR.SvcDesc=“ST Loader (synpkldr.sys)”
AFTERLDR.SvcDesc=“STS General Purpose USB Driver(synusb.sys)”
USB\VID_1158&PID_0101.DeviceDesc=“STS Encoder Interface”

Never, ever, do this. The system manages the contents of %windir%\inf.

Thanks. I wouldn’t do this normally. but just wanted to check if that works.

After that, turn on SetupAPI logging and look at the output in the log files
to determine what is wrong.

I did that too and I have posted the log in my first post. The problem that I see is the PNF file of the correct INF is opened. But it doesn’t recognize the device id. On other machines, it recognizes the device id and says it found the device id and then proceeds with the installation. I am getting stumped at the very first step.

Thanks,

xxxxx@yahoo.com wrote:

Hello,

Here is the INF. This is what I do. I plug in the USB device (our company’s proprietary device ) and when the "Found New Hardware’ comes up, I try to point to the directory with the INF. ( I have copied them to C:\WINDOWS\INF also. That didn’t work either). There are no conflicts with the device id. As I said, it works on other machines but just not this particular machine.

I was going to point out the indivudual problems in this INF file, but
the problems are too numerous. Try this replacement instead. By the
way, you should replace the manufacturer name with your own name,
instead of using “Cypress” from the FX2 template.

[Version]
Signature=“$CHICAGO$”
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%Cypress%

[Manufacturer]
%Cypress%=Cypress

[Cypress]
%USB\VID_1158&PID_0001.DeviceDesc%=PKLDR.Dev, USB\VID_1158&PID_0001
%USB\VID_1158&PID_0101.DeviceDesc%=AFTERLDR.Dev, USB\VID_1158&PID_0101

[PreCopySection]
HKR,NoSetupUI,1

[SourceDisksNames]
1=%Disk%,

[SourceDisksFiles]
synpkldr.sys=1
synusb.sys=1

[DestinationDirs]
PKLDR.Files = 10,System32\Drivers
AFTERLDR.Files = 10,System32\Drivers

[PKLDR.Dev.NT]
AddReg=PKLDR.AddReg
CopyFiles=PKLDR.Files

[PKLDR.Files]
synpkldr.sys

[PKLDR.AddReg]

[PKLDR.AddService]
DisplayName = %PKLDR.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\synpkldr.sys

[PKLDR.Dev.NT.Services]
AddService = PKLDR, 0x00000002, PKLDR.AddService

[AFTERLDR.Dev.NT]
AddReg=AFTERLDR.AddReg
CopyFiles=AFTERLDR.Files

[AFTERLDR.AddReg]

[AFTERLDR.Files]
synusb.sys

[AFTERLDR.AddService]
DisplayName = %AFTERLDR.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\synusb.sys
LoadOrderGroup = Base

[AFTERLDR.Dev.NT.Services]
AddService = AFTERLDR, 0x00000002, AFTERLDR.AddService

[Strings]
PKLDR.SvcDesc=“Syn Device Firmware Loader”
AFTERLDR.SvcDesc=“Syn Device”
Cypress=“Cypress Template – Should be changed”
USB\VID_1158&PID_0001.DeviceDesc=“Syn Device Loader”
USB\VID_1158&PID_0101.DeviceDesc=“Syn Device”
Disk=“Install Disk”


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks Tim for pointing out the errors. This inf is for a legacy device and I have incorporated your suggestions in the new INF (new device id) that I created.

However, I am still wondering why the Hardware setup wizard doesn’t recognize the device id.
If any of the INF sections isn’t right, I am expecting an error like “INF section is incorrect”. But I am not even able to get to that point. It blows up in the first step finding the device id in the INF.

As I said, it works fine on other machines but not on one particular machine. Hence, I am more inclined to think that some settings/registry is corrupted but am not able to figure out what.

Any ideas? Thanks a lot,