This document outlines the steps for upgrading from version 7.x or above to a
newer version of WinDriver. For upgrade instructions for earlier versions of
WinDriver, refer to Technical Document #127 .
Upgrade Steps:
- Preliminary Step: Verify that the New Version
Supports Your Target Platform(s)
- Acquire a New WinDriver License (Registered Users)
- Upgrade Your Driver Project
- Upgrade Your Device INF File (Windows)
- Upgrade Your Driver Distribution / Installation
- Preliminary Step: Verify that the New Version Supports Your Target
Platform(s)
Before upgrading to a newer version of WinDriver, verify that the newer
version supports the operating system and CPU configurations for the
target platforms on which you intend the driver to be used.
For a list of configurations supported in the latest version of
WinDriver, refer to Technical Document #4.
For an historic overview, which lists configurations supported in
earlier versions of WinDriver, refer to Technical Document #50.
- Acquire a New WinDriver License (Registered Users)
If you are using a registered version of WinDriver, contact
Jungo's sales department to
acquire a WinDriver license registration string for the new version.
Then register the new license from DriverWizard
(File | Register WinDriver) and
(if you select to rebuild your code).
Note that if you have a valid Support & Upgrade Subscription you are entitled to
receive a new license free of charge.
- Upgrade Your Driver Project
WinDriver is backwards compatible,
therefore code developed with an earlier version should generally work,
without modification, with the WinDriver driver module(s), provided the
code is not rebuilt with the files and license from the newer version.
However, in order to fully utilize the new driver module and enjoy all
bug fixes and enhancements provided by the newer version, it is
recommended to also upgrade your driver project to use the new driver
files.
Note: The Kernel PlugIn is not backwards compatible.
Therefore, when upgrading to a new version of WinDriver, you must also
#kp_upgraderebuild your Kernel PlugIn driver
(if you have created such a driver) using the new version.
To upgrade your driver code, follow these steps:
-
WinDriver API DLL / Shared Object Upgrade:
In version 8.0.0 we implemented versioning of the high-level
WinDriver API DLL/shared object. Consequently, the name of this
module has changed from wd_utils to
wdapi<version> (e.g., wdapi800 for version
8.0.0 of WinDriver). This enables you to upgrade your driver,
including the DLL/shared object, without worrying about the
possible effects on other drivers, developed with earlier
versions of WinDriver, which may be using the same module.
To use the new WinDriver API DLL/shared object, simply build
your code with the new version's library module —
WinDriver\lib\<CPU>\wdapi<new_version>.lib
(Windows — MS Visual Studio, Windows CE) /
WinDriver\lib\<CPU>\wdapi_borland<new_version>.lib
(Windows — Borland C++ Builder — in WinDriver
v11.1.0 and below)) /
WinDriver/lib/libwdapi<new_version>.so
(Linux, Solaris — supported until 9.0.1)
— as demonstrated in the sample and generated
DriverWizard projects from version 8.x and above of WinDriver.
Similarly, the name of the WinDriver API .NET DLL
changed in version 8.0.0 from wdapi_dotnet.dll to
wdapi<version>_dotnet.dll (e.g.,
wdapi800_dotnet.dll in version 8.0.0 of WinDriver) and
the DLL was moved to the WinDriver\lib\<CPU>\<.NET
version>\ directory (e.g.,
WinDriver\lib\x86\v1.1.4322\).
Note that if your code uses the wdapi DLL/shared object,
you will need to distribute wdapi<version>.dll
(Windows, Windows CE) / libwdapi<version>.so
(Linux, Solaris) with your driver. Windows .NET users should
also distribute wdapi<version>_dotnet.dll.
-
Upgrading a Kernel PlugIn project (PCI):
As indicated above, the Kernel PlugIn is not backwards compatible.
Therefore, to use a Kernel PlugIn project from a
previous version of WinDriver, you need to rebuild your
Kernel PlugIn driver with the files and license from
the new version.
To upgrade a Kernel PlugIn project created with
v10.2.1 or below of WinDriver, to v10.3.0 or above,
follow the instructions in Technical Document #112.
- Upgrading from v7.x to v8.x and above:
When upgrading from v7.x to v8.0.0 or above, you should also be
aware of the following issues:
-
WinDriver Source Files Location:
In version 8.0.0 the WinDriver C source files were
moved from the WinDriver/src
directory to the
WinDriver/src/wdapi/ directory. The
.NET source files were moved from the
WinDriver/wdapi.net/
directory to the
WinDriver/src/wdapi.net/ directory.
If your project uses the wdapi (previously
wd_utils) DLL/shared object (see
above), this should not
normally affect you. However, if you have included any
WinDriver source files directly in your project you may
need to modify your project/make file to point to the
new source files location.
- When upgrading from version 7.0.0 —
update your project's files search paths:
Beginning with version 7.0.1 of WinDriver, the include
path in the WinDriver project/make files contains the
path to the WinDriver/ and
WinDriver/include/
directories, and the #include statements in the
WinDriver source files and generated DriverWizard code
were consequently modified to indicate only the name
of the header file to include, instead of the
full/relative path to the file (as done in earlier
versions).
In light of these changes, when rebuilding a driver
project from version 7.0.0 or earlier of WinDriver
with the source files from version 7.0.1 or above, you
may need to modify your project/make file and add the
path to the WinDriver/ and
WinDriver/include/
directories to the project's include path in order to
successfully build the project.
-
Register Your New License (Registered Users):
Modify the driver code to register your
new license — i.e., replace the
license string in the call to
WDU_Init() (USB) /
WDC_DriverOpen()
(PCI/ISA/PCMCIA — WDC API) /
WD_License() (low-level API) from your code.
- Rebuild your driver project with the source files from
the new version.
- Upgrade Your Device INF File (Windows)
On Windows 2000/98/Me (in
earlier WinDriver versions) and
higher: If you have created a driver for a
Plug-and-Play device (USB/PCI/CardBus/PCMCIA), it is recommended
to create and install a new INF file for your device, which registers
it with the driver module from the new version —
windrvr6.sys (or your renamed version of this driver — in
v9.x and above). You can use DriverWizard from the new version to
generate the new INF file, or modify the driver version in your
existing INF file.
- Upgrade Your Driver Distribution / Installation
Create a new driver installation package, which contains the following
items from the new WinDriver distribution:
- The WinDriver driver module —
windrvr6.sys/.dll/.o/.ko or WinDriver.kext,
depending on the OS and the WinDriver version — or a renamed version of this driver.
- On Linux, beginning with version 10.0.0 of WinDriver USB:
The WinDriver USB Linux GPL driver —
windrvr6_usb.o/.ko,
or a renamed version of this driver.
- Any other files required for installing or using your driver
(e.g., Windows INF files).
- An installation program that installs the new driver.
For Windows 2000 and higher, for example, you would normally
distribute the new windrvr6.sys, windrvr6.inf, and
wd<new_version>.cat (v8.1.0+) files, the
wdreg.exe or wdreg_gui.exe utility,
difxapi.dll (v8.1.1+),
your device INF file (if created),
wdapi<new_version>.dll (v8.x+)
(if used from your driver project), and your Kernel PlugIn driver (if
you have created such a driver).
Specific driver distribution instructions can be found in the
Distributing Your Driver chapter of the new manual. The instructions
for Windows are also summarized in Technical Document #132 (v81.x and
above) / Technical Document #130 (v8.0.x).
Version-Specific Installation Upgrade Notes:
-
Version 7.x to Version 8.1.0+ Windows Upgrade —
The wd<version>.cat WinDriver Catalog File:
Beginning with version 8.1.0, the windrvr6.sys driver
has an Authenticode digital signature. In order to enjoy the
advantages of this signature the wd<version>.cat
catalog file, provided under the WinDriver\redist
directory, needs to be distributed together with the
windrvr6.inf file, which is used to install the driver. For
more information, refer to the
of the new WinDriver version and to
Technical Document #132.
-
Version 8.1.0- to Version 8.1.1+ Windows Upgrade —
WDREG difxapi.dll Dependency:
Beginning with version 8.1.1, the wdreg installation
utility uses the Driver Install Frameworks API (DIFxAPI)
to perform driver installation and uninstallation. As a result,
the wdreg utility in version 8.1.1 and above is
dependent on the difxapi.dll DLL, which is provided
under the WinDriver\util directory. This DLL must
therefore be in wdreg's search path when using the
utility to install / uninstall INF files.
-
Version 9.2.1- to Version 10.0.0 Linux USB Upgrade
—
The windrvr6_usb WinDriver USB Linux GPL
Driver:
Beginning with version 10.0.0, the WinDriver Linux USB driver
was split into two modules, which are used together to provide
the full driver functionality:
- windrvr6.o/.ko — the traditional WinDriver
driver module, which includes the Jungo license.
- windrvr6_usb.o/.ko — this driver
implements Linux-specific USB driver functionality, and
contains a GNU General Public License (GPL).
|