Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

"Error 2" installing drivers for NIC - can't find file specified.

Status
Not open for further replies.

weirdo

Technical User
Nov 10, 2001
13
US
I'm getting a "system cannot find the file specified"
error when installing drivers for a network card I recently added to my Windows 2000 system. The problem seems to occur when the device installation function DIF_INSTALLDEVICE executes. As I understand it, of course I could be wrong, the function DIF_INSTALLDEVICE has a pointer to the location of the driver file (dp83815.sys in this case which is copied successfully earlier in the process). For some reason it appears to not be seeing it. Since I know of no way to manually tell it where it is, I have hit a dead end. The only thing I can think of is to try updating my setupapi.dll file and trying again.

The driver file is copying to %SystemRoot%\system32\drivers just fine. The co-installers are being registered and the interfaces installed. The problem occurs, I think, when the DIF_INSTALLDEVICE installation request from the installer attempts to load the driver, it is returning the "error 2: The system cannot find the file specified."

I'm installing as the administrator and file permissions should not be an issue. I've tried various attempts at trying to get the installer to see the location of the driver which has been successfully copied to the drivers directory. I've changed the "ServiceBinary" entry in the [.Service] entry in the .inf file, but no luck. I've added the drivers directory to the system PATH, but still no luck.

The *.SYS driver file is there, but it just isn't being loaded.

Any help with this issue on how to get the drivers loaded would be apprecaited, I am attaching a copy of setupapi.log if it will help you help me.

Thanks,

Weirdo!


Setupapi.log:
[2002/01/09 18:11:27 992.2]
Munged cmdline: rundll32.exe newdev.dll,DevInstall PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24ab0d93&0&40F0
EXE name: C:\WINNT\system32\rundll32.exe
Set selected driver.
Device install function: DIF_SELECTBESTCOMPATDRV.
Selecting best compatible driver caused error: Error 0xe0000228: There are no compatible drivers for this device.
Completed default installer, error: Error 0xe0000228: There are no compatible drivers for this device.
Set selected driver.
Searching for hardware ID(s): pci\ven_100b&dev_0020&subsys_f3111385&rev_00,pci\ven_100b&dev_0020&subsys_f3111385,pci\ven_100b&dev_0020&cc_020000,pci\ven_100b&dev_0020&cc_0200
Searching for compatible ID(s): pci\ven_100b&dev_0020&rev_00,pci\ven_100b&dev_0020,pci\ven_100b&cc_020000,pci\ven_100b&cc_0200,pci\ven_100b,pci\cc_020000,pci\cc_0200
Enumerating files A:\*.inf
Found PCI\VEN_100B&DEV_0020 in A:\NET83815.INF; Device: National Semiconductor Corp. DP83815 10/100 MacPhyter3v PCI Adapter; Driver: National Semiconductor Corp. DP83815 10/100 MacPhyter3v PCI Adapter; Provider: National Semiconductor Corp.; Mfg: National Semiconductor Corp.; Section: DP83815.ndi
Decorated section name: DP83815.ndi
Device install function: DIF_SELECTBESTCOMPATDRV.
Selected driver installs from section DP83815.ndi in a:\net83815.inf.
Changed class GUID of device to {4D36E972-E325-11CE-BFC1-08002BE10318}.
Set selected driver.
Selected best compatible driver.
Device install function: DIF_INSTALLDEVICEFILES.
Doing copy-only install of PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24AB0D93&0&40F0.
Installing section DP83815.ndi from a:\net83815.inf.
Copying file a:\dp83815.sys to C:\WINNT\System32\DRIVERS\dp83815.sys.
An unsigned or incorrectly signed driver (a:\dp83815.sys) was installed for National Semiconductor Corp. DP83815 10/100 MacPhyter3v PCI Adapter. Error 0x800b0100: No signature was present in the subject.
Device install function: DIF_REGISTER_COINSTALLERS.
Co-Installers Registered.
Device install function: DIF_INSTALLINTERFACES.
Installing section DP83815.ndi.Interfaces from a:\net83815.inf.
Interfaces installed.
Device install function: DIF_INSTALLDEVICE.
Doing full install of PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24AB0D93&0&40F0.
Device install finished with error Error 2: The system cannot find the file specified.
Completed class-installer, error: Error 2: The system cannot find the file specified.
Set selected driver.
Installing NULL driver for PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24AB0D93&0&40F0.
Device install finished with error Error 2: The system cannot find the file specified.
 
"An unsigned or incorrectly signed driver (a:\dp83815.sys) was installed for National Semiconductor Corp. DP83815 10/100 MacPhyter3v PCI Adapter. Error 0x800b0100: No signature was present in the subject."

This is the real error, you have your system configured to not allow the installation of unsigned drivers. You must change your security settings to allow the unsigned driver to be installed, or buy a different NIC.

Click on Start, Settings, Control Panel, Computer Management, Local Security Policy; click on plus sign next to Local Policies and select Security, scroll down the bottom and find the items you need to change.

Good luck,

Mike
Tao is the mobius. The ribbon of heaven and earth, you cannot lose your way.
 
I may be missing something. I followed the following steps to allow the installation of unsigned drivers:

Start > Settings > Control Panel > Administrative Tools > Local Security Policy. I clicked on "+" next to Local Policies, scrolled down and set the following: unsigned driver installation behavior - Silently Succeed. (After reboot, both "local setting" and "effective setting" are set) unsigned non-driver installation behavior - Silently Succeed (same as above).

I thought this was working because it seem take much longer while installing the driver, but then that same old error message showed up. I checked the setupapi.log file and I was still getting the "an unsigned or incorrectly
signed driver.......etc" error.

I'm going to go ahead and attach the setupapi.log file. Is there anything else I am missing regarding settings which allow the installation of unsigned drivers?
It would seem that if I set the unsigned driver installation behavior to "Silently Succeed", that should work.

take care
---------------------------------
[2002/01/19 09:10:50 220.3 Driver Install]
Munged cmdline: C:\WINNT\system32\services.exe
EXE name: C:\WINNT\system32\services.exe
Device install function: DIF_SELECTBESTCOMPATDRV.
Selecting best compatible driver caused error: Error 0xe0000228: There are no compatible drivers for this device.
Completed default installer, error: Error 0xe0000228: There are no compatible drivers for this device.
[2002/01/19 09:11:25 824.2]
Munged cmdline: rundll32.exe newdev.dll,DevInstall PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24ab0d93&0&50F0
EXE name: C:\WINNT\system32\rundll32.exe
Set selected driver.
Device install function: DIF_SELECTBESTCOMPATDRV.
Selecting best compatible driver caused error: Error 0xe0000228: There are no compatible drivers for this device.
Completed default installer, error: Error 0xe0000228: There are no compatible drivers for this device.
Set selected driver.
Searching for hardware ID(s): pci\ven_100b&dev_0020&subsys_f3111385&rev_00,pci\ven_100b&dev_0020&subsys_f3111385,pci\ven_100b&dev_0020&cc_020000,pci\ven_100b&dev_0020&cc_0200
Searching for compatible ID(s): pci\ven_100b&dev_0020&rev_00,pci\ven_100b&dev_0020,pci\ven_100b&cc_020000,pci\ven_100b&cc_0200,pci\ven_100b,pci\cc_020000,pci\cc_0200
Enumerating files A:\*.inf
The file (A:\DP83815.inf) is not digitally signed, ignoring driver date.
Found PCI\VEN_100B&DEV_0020 in A:\DP83815.inf; Device: DP83815 Ethernet Adapter; Driver: DP83815 330 Ethernet Adapter; Provider: National Semiconductor.; Mfg: National Semiconductor.; Section: DP83815.ndi
Decorated section name: DP83815.ndi
Device install function: DIF_SELECTBESTCOMPATDRV.
Selected driver installs from section DP83815.ndi in a:\DP83815.inf.
Changed class GUID of device to {4D36E972-E325-11CE-BFC1-08002BE10318}.
Set selected driver.
Selected best compatible driver.
Device install function: DIF_INSTALLDEVICEFILES.
Doing copy-only install of PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24AB0D93&0&50F0.
Installing section DP83815.ndi from a:\DP83815.inf.
An unsigned or incorrectly signed driver (a:\sdsys330.inf) was installed for SpeedDemon 330 Ethernet Adapter. Error 0xe000022f: The third-party INF does not contain digital signature information.
Copying file a:\DP83815.sys to C:\WINNT\System32\DRIVERS\DP83815.sys.
An unsigned or incorrectly signed driver (a:\DP83815.inf) was installed for National Semiconductor Ethernet Adapter. Error 0xe000022f: The third-party INF does not contain digital signature information.
Device install function: DIF_REGISTER_COINSTALLERS.
Co-Installers Registered.
Device install function: DIF_INSTALLINTERFACES.
Installing section DP83815.ndi.Interfaces from a:\DP83815.inf.
Interfaces installed.
Device install function: DIF_INSTALLDEVICE.
Doing full install of PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24AB0D93&0&50F0.
An unsigned or incorrectly signed driver (a:\DP83815.inf) was installed for National Semiconductor Ethernet Adapter. Error 0xe000022f: The third-party INF does not contain digital signature information.
Device install finished with error Error 2: The system cannot find the file specified.
Completed class-installer, error: Error 2: The system cannot find the file specified.
Set selected driver.
Installing NULL driver for PCI\VEN_100B&DEV_0020&SUBSYS_F3111385&REV_00\4&24AB0D93&0&50F0.
Device install finished with error Error 2: The system cannot find the file specified.

 
You could create a directory above the i386 directory called $OEM$ with a subdirectory of $1 with another subdirectory of Drivers with again a subdirectory of NIC and place the drivers there.
This works with a RIS install to get the NIC drivers for INTEL NIC's to install.It should work for you as you say you have copied drivers and placed them with the other drivers.It would be worth a try. When W2K installs it looks there for drivers as well as in its usual drivers folders.
This method also allows putting other drivers where W2K can find them when they are not included with W2K.
 
Yeah, I think shovel204 is on to something here. I have found that W2k will not grab that file off of drive A if a similar file exists in the inf dir, usually wrapped in a .inf file. In the end though, I think you may need to set the system to allow the verbose installation of unsigned drivers then set it back when you are done.

We see from your output that the copy only installation worked, but the full installation did not work. Did the system place the file DP83815.sys in C:\WINNT\System32\DRIVERS\? If so, this brings us around to the .inf file that the system located on the hard disk. Meaning that either the DP83815.sys file does not exist, or does not exist in the location the .inf file is pointing it. DP83815.inf will not be found on your hard drive, the information will be pasted into a file named oemx.inf, where the "x" is a sequential number. I will assume that your oem file will be the highest number of the listed oem files. Oh, this will be in the \\winnt\inf directory. These files are text editable.

I think what happens is that W2k takes the manufacturers .inf file and does a cut and paste into file it names OEMx.inf file. If you look in the \\winnt\inf folder you will see files named oem1.inf, oem2.inf...

I had one heck of a time installing new driver files for my SCSI card. W2k included a driver for the card and I kept getting SCSI timeouts in the event log. When I attempted to install the Adaptec drivers, W2k would not take them, it kept loading the driver information from the oem1.inf file that the system created. I had to put the adaptec files on a floppy and then delete the .inf file holding the MS driver info. This is when I discovered that I had not configured my system to allow the installation of unsigned drivers. I simply configured the system to allow the installation of unsigned drivers, then changed it back when the installation completed.

I will also say that part of the problem was that MS versioned all of its included drivers as version 5.xxx something. The adaptec drivers I was installing were a newer date, but a lesser version number. I cannot say if this had an impact, because I don't know the criteria MS built in to W2k for driver selection. I do know that W2k does rescan for plug and play changes each time it cold boots. In this process it makes driver selections based on this same logic - back to the part I don't know for certain.

Sorry that my first post did not resolve the issue, but we will get there.

Regards,

Mike
 
I tried the $OEM$ directory idea. I have some understanding of its use for a
RIS install, but I'm not familiar for the proper location on an existing
Win2K installation.

The only two i386 folder locations are C:\WINNT\Driver Cache\i386 and
C:\WINNT\ServicePackFiles\i386.
I created C:\WINNT\Driver Cache\$OEM$\$1\Drivers\NIC and added the driver.
Still no luck.

Your correct about Win2k copying the .inf file into an oemx.inf file. In my
case oem0.inf. I have been removing them everytime I wanted to try again
fresh from the driver disk.

Yes, the copy installation works. The file DP83815.sys is being placed in
C:\WINNT\System32\DRIVERS. The file DP83815.inf is being placed in
C:\WINNT\inf. The files oem0.inf and oem0.pnf are being created. The full
installation fails.

I had turned off the "Digital Signature Not Found Warning" when I got tired
of always have to click "yes" to continue the installation. On or off, I
still get the same problem. What I can't figure out is that according to all
the documentation I can find, I should not be getting that warning if I set
the local computer policies "Unsigned driver installation behavior" and
"Unsigned non-driver installation behavior" to "Silently succeed".

Although I have SP2 installed, I'm thinking about just blowing away the
Win2k partition and starting from scratch. The last resort of a clueless
user (that's me).
 
Before quitting, delete the NIC from device manager,no reboot.Then add new hardware select that you want to pick the hardware,when it finally lets you, select network adapter and point it to the files you want to use. It will have probably put the card back in again, but you can always remove it again after.
You could also remove the NIC physically reboot and it will delete the NIC for you, then add new hardware, and then shutdown and put the card in.
3COM actually wants to use this method when installing their new NIC cards.
 
Make certain that you have the latest driver. My research on this issue shows that this device was only tested with W2k beta 2 and no certified drivers were released by the manufacturer. The reseller, or whomever, may have some updated drivers for you.

As of this day, the NIC is on the hardware compatibility list, but with the prerequisite that updated drivers are obtained.
You might also have some better luck installing this as a National Semiconductor NE2000+ device.
 
thank you for helping me so much.

Dear TestNode, if the drivers are bad would it give me that error that it can't find the file specified? Wouldn't it give me a different error?

Thanks,

Weirdo
 
Bad info in the .inf file??? Perhaps not, W2k can be very fussy about installing cards, particulary the second time after an incomplete installation the first time. I want to make certain that you are using a proper W2k driver. It appears that you are installing a Netgear FA311 NIC, but maybe not since it is identified as a National Semiconductor product. I will advise you to follow the procedure outlined by shovel204 to remove the current drivers and will add a recommendation that you delete the oem0.inf file.

As to drivers:

National has certified drivers for your card here:

From Netgear, unfortunately the linked server was down:
Question:
Why do I receive the error message "Windows cannot locate the necessary files" when I install the FA311 driver?


Answer:
A program has been released to update the PCI ID to contain the correct information. Please here to get the update program.If you prefer, there are also two workarounds for this situation, which are outlined below, either of these can be used.

Workaround #1 ,p>The FA312 driver (attached) can be used instead. After installing this driver, your card will be shown as an FA312 in your system. However, the card will function normally as an FA311. There is no degradation in functionality or performance in any way.To use this workaround, extract the driver files onto your PC, then remove all references to NETGEAR FA311 or FA312 in your device manager (You can do so by right clicking "My Computer", click on the tab "Device Manger", click on the '+' sign of the "Network adapters" category and select "Netgear Network Adapter, the click ""Remove", select "OK" when prompted to confirm). After rebooting, Windows will come up to ask for the driver for the new device, point to the directory where you have extracted your files when asked for the driver.Although the card will perform normally using this workaround, for those who wish the system to show the correct PCI ID.

If it is desired to have the system displaying the correct information, please use the update program above.

Workaround #2

As an alternative, you can try to force the FA311 driver to install using the procedure described in base article N01760.

Editorial comment: the netgear support site generally is pretty awful. Try searching for Windows 2000 and no results are returned. Further their support docs do not sufficiently identify operating systems.
 
everything worked out well, thanks for your help.

wierdo
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top