Technical Document #49

Technical Document #49        [Product Version: 6.0.2–10.3.0]
Replacing the driver for PCI/USB devices on Windows 2000: I tried to install new INF files for my Plug-and-Play devices on Windows 2000, using wdreg, but the OS keeps installing the old INF files from a previous WinDriver version. How can I resolve this?

The behavior your encountered is due to Windows 2000's INF selection algorithm and can be resolved by deleting the old INF file(s) for your device from the %windir%\inf directory before installing the new file, as explained below.

When installing an INF file that registers your Plug-and-Play device to work with WinDriver, a copy of this device-INF file is placed in the %windir%\inf directory. In v5.2.2 (and earlier) of WinDriver, this copy is automatically named oem*.inf (unless you installed the INF file directly from the %windir%\inf directory). In newer versions of WinDriver, when installing the INF file with the wdreg utility (also used in the DriverWizard INF file installation) the copy of the INF file will have the same name as the original file.

When installing a new INF file for your device (e.g., the INF file created with v6.0.3 of WinDriver — in your case), a copy of the new device-INF file is placed in the %windir%\inf directory (in v6.x+ of WinDriver the name of this copy will be identical to that of the new INF file; in earlier versions the copy will be named oem*.inf). Then the devices are re-enumerated and Windows 2000 selects the older INF file (from version 5.2.2 — in your case) and installs it. The reason for this is that on Windows 2000, Setup selects the driver with the most recent date only if the driver package is signed. Otherwise, Setup uses a default date of 00/00/0000. In this case, the older INF file is selected, because the drivers are unsigned (see www.jungo.com/st/support/windriver/windriver_faqs/#win5).

To solve this problem, before installing a new INF file for a device on Windows 2000, you should first delete from the %windir%\inf directory any previous INF files for the device, to prevent Windows from installing an old INF file in place of the new file that you created. Look for files containing your device's vendor and device IDs and delete them.

Note that this issue is not specifically related to the upgrade from v5.2.2 to v6.0.3 of WinDriver, nor to the use of WinDriver in general. The same applies any time you attempt to load a new INF file that installs an unsigned driver for a Plug-and-Play device on Windows 2000.

For a detailed explanation on how Windows Setup selects drivers, refer to the MSDN How Setup Selects Drivers page.

For detailed WinDriver version upgrade instructions, refer to Technical Document #84.

Note that it is recommended to remove old INF files from the %windir%\inf directory before upgrading the driver for a device on other Plug-and-Play Windows operating systems as well.