USB device driver load fails on SOME XP systems

I have a really old driver for a really old USB device based on an old
Anchor Chips sample driver. Yes, this is not the most wonderful driver for
a number of reasons. But it has been working for years, and it still works
on just about any version of 32-bit Windows that will accept unsigned
drivers.

Today I got a call that the driver was refusing to load for the device on a
customer’s XP machines. All of them. And all of these machiens had had the
driver loaded in the past, and had been able to talk to the device in the
past when it was plugged in. I tried the driver on about 8 XP machines I
had around, including some that had previously had it installed and some
that hadn’t. It works fine on all of them.

The guy brought over a laptop that is failing. The inf file and driver are
where they should be. But the device doesn’t work. Tried reinstalling the
driver and get a helpful “the location specified doesn’t contain a driver
for this device”. But it does, and it had previously been found there on
this very machine. But not now.

Turned on Setupapi.log messages to full debugging level, deinstalled the
existing null driver, and tried to install the new driver. The machine is
doing things I’ve not noticed a machine doing before. It is plowing thru
two different levels of inf cache files, and not finding anything in any of
them. Then it finally looks for the file I pointed it at. Normally it will
instantly find the driver here. But in this case I’m not sure that it is
even opening the inf file.

The only INF file on the system for this device is my INF file, so it isn’t
some other driver stealing it.

Below are good and bad clips from Setupapi.log files. has anyone seen this
before and know how to fix whatever is wrong? We really need to get this
device working on these machines again, that is why the machines exist in
the first place!

Thanks,

Loren

Tail of bad Setupapi.log: Notice it doesn’t seem to even taste the INF
file, just says “PNF not created”:

@ 02:04:00.531 #V392 Using INF cache “c:\drivers\audio\INFCACHE.1”.
@ 02:04:00.578 #T075 Enumerating files: Directory pass completed.
@ 02:04:00.609 #T076 Enumerating files: Cache pass completed.
@ 02:04:00.671 #V017 Enumerating files “c:\drivers\audio\onboard”.
@ 02:04:00.765 #V392 Using INF cache “c:\drivers\audio\onboard\INFCACHE.1”.
@ 02:04:00.843 #T075 Enumerating files: Directory pass completed.
@ 02:04:00.937 #T076 Enumerating files: Cache pass completed.
#-019 Searching for hardware ID(s):
usb\vid_0547&pid_2131&rev_0004,usb\vid_0547&pid_2131
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
@ 02:04:01.234 #V017 Enumerating files “e:\usb drivers for win7”.
@ 02:04:01.265 #V039 Opened INF “e:\usb drivers for win7\ezusbw2k.inf”, PNF
not created (Languge = 0409).
@ 02:04:01.312 #V039 Opened INF “e:\usb drivers for win7\Copy of
ezusbw2k.inf”, PNF not created (Languge = 0409).
@ 02:04:01.343 #V166 Device install function: DIF_SELECTBESTCOMPATDRV.
@ 02:04:01.375 #V155 Executing default installer.
@ 02:04:01.390 #W059 Selecting best compatible driver failed. Error
0xe0000228: There are no compatible drivers for this device.
@ 02:04:01.406 #W157 Default installer failed. Error 0xe0000228: There are
no compatible drivers for this device.
@ 02:04:03.078 #I060 Set selected driver.
@ 02:04:03.109 #V166 Device install function: DIF_ALLOW_INSTALL.
@ 02:04:03.125 #V155 Executing default installer.
@ 02:04:03.156 #V156 Completed default installer.
@ 02:04:03.187 #V166 Device install function: DIF_INSTALLDEVICE.
@ 02:04:03.203 #V155 Executing default installer.
@ 02:04:03.218 #T200 Install Device: Begin.
@ 02:04:03.250 #I125 Installing NULL driver for
“USB\VID_0547&PID_2131\5&2A5D79C0&0&1”.

Tail of good Setupapi.log from a different machine:

#I060 Set selected driver.
#-019 Searching for hardware ID(s):
usb\vid_0547&pid_2131&rev_0004,usb\vid_0547&pid_2131
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_ff&prot_ff,usb\class_ff&subclass_ff,usb\class_ff
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#W059 Selecting best compatible driver failed. Error 0xe0000228: There are
no compatible drivers for this device.
#W157 Default installer failed. Error 0xe0000228: There are no compatible
drivers for this device.
#I060 Set selected driver.
#-019 Searching for hardware ID(s):
usb\vid_0547&pid_2131&rev_0004,usb\vid_0547&pid_2131
#-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_0547&pid_2131&rev_0004,usb\vid_0547&pid_2131
#-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_0547&PID_2131” in d:\projects\gilderfluke\usb drivers
for win7\ezusbw2k.inf; Device: “Anchor Chips EZ-USB (2131Q/2131S/2135S) -
EEPROM missing”; Driver: “Anchor Chips EZ-USB (2131Q/2131S/2135S) - EEPROM
missing”; Provider: “AnchorChips”; Mfg: “AnchorChips”; Section name:
“EZUSB.Dev”.
#I087 Driver node not trusted, rank changed from 0x00000001 to 0x00008001.
#I023 Actual install section: [EZUSB.Dev.NT]. Rank: 0x00008001. Effective
driver date: 01/01/1601.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [EZUSB.Dev] in
“d:\projects\gilderfluke\usb drivers for win7\ezusbw2k.inf”.

Loren,

I’d remove all the INF cache files from that laptop. That has helped me with similar XP install issues in the past. Just the \Windows\inf\INFCACHE.1 will hopefully be rebuilt as part of the next install.

My $.02,

Ilya Faenson
Rockville, MD 20850

This can occur when users disable some obscure but required system services (or some “helpful utility” does this on their behalf).
– pa

> I’d remove all the INF cache files from that laptop. That has helped me

with similar XP install issues in the past. Just the
\Windows\inf\INFCACHE.1 will hopefully be rebuilt as part of the next
install.

Thanks Ilya. I tried this but it didn’t help. Someone else suggests that
there may be some service disabled or obscure configuration change on these
machines. I have a hunch that may be the case, but so far I haven’t a clue
what it might be.

Loren

Are these services started?

cryptsvc
plugplay

– pa

Loren Wilton wrote:

Today I got a call that the driver was refusing to load for the device on a
customer’s XP machines. All of them. And all of these machiens had had the
driver loaded in the past, and had been able to talk to the device in the
past when it was plugged in.

Odd that the directory is called “usb drivers for win7”. Were these
actually built in the Win 7 build environment? If not, where did the
directory name come from?

It’s also odd to me that the INF cache is not in \windows\inf.


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