This document describes the changes in the software since version 2.1.0.
Version 11.3.0
(Release Date: April 7, 2013)
New Features
-
PCI Express: Added customized DriverWizard code generation for the
Altera Qsys and Xilinx BMD designs.
Enhancements
-
Added support for Linux kernel 3.8.5.
-
PCI: Moved the bits.h and
pci_regs.h headers from the
samples/shared/ WinDriver
directory to the include/ directory.
Fixes
-
.NET (Windows): Fixed possible build errors with the sample and
generated DriverWizard C# and Visual Basic .NET code.
-
USB: Blocking input streams could sometimes return less data than requested.
-
ISA on Windows: Fixed the DriverWizard-generated
<driver_name>_install.bat
installation script (issue
since v10.4.0).
Version 11.2.0
(Release Date: January 6, 2013)
New Features
-
Windows: Added support for MS Visual Studio 2012 and Windows Driver Kit (WDK) 8.
Enhancements
-
Added support for Linux kernel 3.7.1.
-
PCI on Linux: Added support for enabling interrupts of a specific type
(level-sensitive/MSI/MSIx) from among the types supported by the device.
-
PCI Express: Modified functions in the Xilinx BMD design
(bmd_lib) and Altera Qsys design (qsys_lib) sample
libraries, to return success or failure indications.
Fixes
-
Windows: Fixed an OS crash (BSOD) when testing WinDriver with Microsoft's Windows Hardware Certification Kit (HCK)
2.0 (part of the latest WHQL certification).
-
USB: Fixed execution of the power-change callback
(
WDU_POWER_CHANGED_CALLBACK).
-
Windows: Updated the digital signature of the WinDriver driver
(windrvr6.sys) to support Windows 8
(issue
since v11.0.0).
-
PCI on Linux: Fixed the IRQ number update when enabling Message-Signaled Interrupts (MSI)
(issue
since v9.1.0).
-
Windows: Fixed compilation errors when building the WinDriver .NET API DLL
(wdapi_dotnet<version>.dll) in
release mode (issue
since v7.0.1).
Obsolete Features
-
Removed support for MS Visual Studio 5/6/2003, Borland C++ Builder, Visual Basic 6.0, and
Delphi.
Version 11.1.0
(Release Date: Aug 26, 2012)
Enhancements
-
PCI on Windows CE: Added a new
WD_ITEM_CE_MAP_VIRTUAL flag to
the WD_ITEM_OPTIONS enumeration, for performing the kernel
mapping of physical memory to non-static virtual system addresses, as
opposed to the default static kernel address mapping.
-
PCI Express: Added enhanced support for PCI Express cards with the Altera
Qsys design — WinDriver/altera/qsys_design.
The new sample was tested with the Altera Stratix IV GX development kit.
-
Linux: Improved IOCTLs performance.
-
PCI on Windows: Added the option to preallocate contiguous DMA buffers as
part of the driver load process (when Windows is started), to prevent
allocation errors caused by memory fragmentation.
-
Added support for Linux kernel 3.4.7.
Fixes
-
Linux: Added a /usr/lib64 symbolic link to
/usr/lib for 64-bit distributions in which there
is no /usr/lib64 directory, such as Ubuntu 11.10
(issue
since v11.0.0).
-
Linux: Added handling of multiple
modpost occurrences,
resolving a previous WinDriver sed installation error relating to
the conftest.s1 file.
-
Linux: Fixed the wdreg installation
script's
auto option on Linux 3.x kernels
(issue
since v11.0.0).
-
Linux PowerPC (PPC): Fixed the multi-domain PCI scan functionality so that
all domains are displayed (issue
since v11.0.0).
-
PCI: Fixed a buffer overrun for a registered devices PCI scan
(
WDC_PciScanRegisteredDevices() /
WD_PciScanCards() with the WD_PCI_SCAN_REGISTERED
option) when there are more than 100 registered PCI cards
(issue
since v6.0.2).
-
PCI: Fixed possible data corruption when performing Scatter/Gather DMA from a
64-bit host to a 32-bit device with a buffer containing pages that are
mapped to physical memory above the 4GB address range.
-
PCI: Fixed an occasional
WDC_xxxDeviceOpen() failure.
-
PCI on Windows: Fixed a potential race condition during Scatter/Gather DMA
allocation (issue
since v9.2.1).
-
Windows: Fixed a potential OS crash (BSOD) when existing a USB application.
-
PCI on 64-bit Windows: Removed the
-DWINNT flag from the
generated user-mode DriverWizard 64-bit Visual Studio projects. The use
of this flag previously caused incorrect data to be returned when accessing
the device context returned by the WDC_xxxDeviceOpen()
functions
((PWDC_DEVICE)(*phDev)->pCtx) directly
from a user mode application. (Issue
since v10.0.1) -
.NET API (Windows): Added missing MSI fields to the definition of the
WD_INTERRUPT structure — dwLastMessage and
dwEnabledIntType — and implemented the
WDC_GET_ENABLED_INT_TYPE,
WDC_GET_ENABLED_INT_LAST_MSG, and WDC_INT_IS_MSI
macros (issue
since v9.1.0).
Obsolete Features
-
Removed obsolete samples.
Version 11.0.0
(Release Date: February 26, 2012)
New Features
-
Windows 8: Added support for Windows 8 Developer Preview.
-
DriverWizard: Added code generation for Windows GCC (MinGW/Cygwin).
Enhancements
-
Linux: Added Debian and Red Hat Package Manager (RPM) WinDriver installation packages.
-
Added support for Linux kernel 3.2.4.
-
PCI: Added support for 64-bit BAR addresses.
Fixes
-
Windows PCI 32-bit application running on a 64-bit kernel: Fixed
disregard for the
dwOptions WD_ITEMS field values in calls to
the WinDriver device information retrieval functions —
WDC_PciGetDeviceInfo() / WDC_PcmciaGetDeviceInfo()
or the low-level WD_PciGetCardInfo() /
WD_PcmciaGetCardInfo().
-
DriverWizard Kernel PlugIn code generation: Fixed the generated
KP_XXX_Open_32_64() function, to resolve a previous
Kernel PlugIn compilation warning (issue
since v10.4.0).
-
Windows 64-bit: Fixed the WinDriver installation for paths that contain
spaces (e.g., installation to the
Program Files directory)
(issue
since v8.0.0).
-
DriverWizard on Windows: By default, save generated projects in the
WinDriver wizard/my_projects directory
(issue
since v10.2.0).
-
USB on Windows: Fixed an OS crash when a USB device provides a
configuration descriptor with no valid interface (issue
since v7.0.0).
-
USB on Windows CE: Fixed a delay in the detach sequence when disconnecting
a USB device during streaming (issue
since v10.0.1).
-
USB streaming on Windows CE: Fixed handling of a 0 (infinite) timeout in
the call to
WDU_StreamOpen(); previously this caused an
immediate timeout error, instead of setting no timeout (infinite wait)
(issue
since v10.0.1).
-
Windows: Fixed a minor 20-byte memory leak upon starting of the WinDriver
driver.
-
Windows: Fixed a registry related issue that caused a security warning
when using Microsoft's Verifier utility
(Verifier.exe).
-
PCI on Windows: Fixed a crash in the C# WinDriver applications upon
failure to open a PCI device (issue
since v8.0.0).
Obsolete Features
-
Stopped support for Mac OS X
-
Stopped support for Linux kernels 2.2.x and 2.4.x.
Version 10.4.0
(Release Date: October 2, 2011)
New Features
-
Added support for Windows Embedded Standard 2009.
-
Added support for Windows Embedded Compact 7 ("Windows CE 7").
-
Added support for Linux kernel 2.6.39.
Enhancements
-
PCI on Mac OS X: Added support for 64-bit BAR addresses.
-
Windows DriverWizard: Added a
<driver_name>_install.bat script to
the generated driver code, to simplify installation of renamed drivers.
-
PCI Altera sample: Added sample license registration to
WinDriver/altera/pci_dev_kit/lib/altera_lib.c.
-
PCI on Windows: Scatter/Gather DMA allocation (using
WDC_DMASGBufLock() / WD_DMALock()) —
disabled fall back to obsolete DMA allocation (issue
since v9.2.0).
Fixes
-
WinDriver Windows installation: Modified the
wdreg utility to resolve occasional
ERROR_FILE_NOT_FOUND errors due to a missing
RunOnce registry key definition.
-
Windows CE: Fixed detection of PCI device resources.
-
USB on Linux and Windows CE: Fixed an application crash in the
usb_diag sample when trying to perform an
action on an endpoint of a multi-interface device
(issue
since v10.0.2).
-
USB on Linux and Windows CE: Fixed a segmentation fault in the
usb_diag sample when printing device
information for a multi-interface device (issue
since v10.3.0).
-
Windows 64-bit: Fixed the WinDriver library path in the generated
DriverWizard Borland C++ Builder projects (issue
since v8.0.0).
-
PCI: Fixed the interrupt type returned by the interrupt-enable functions
—
WDC_IntEnable() / WD_IntEnable() —
when running a 32-bit application on a 64-bit kernel
(issue
since v9.1.0).
-
Visual Basic .NET (Windows): Fixed loading of sample and DriverWizard-generated
Visual Basic .NET 2008 projects (issue
since v10.2.0).
-
DriverWizard on Windows: Fixed support for keyboard input in the
Select Code Generation Options and
Select Additional Options dialogues
(issue
since v9.0.0).
-
PCI on Windows: Fixed the DriverWizard C# Kernel PlugIn code
generation (issue
since v8.0.0).
-
Linux USB: Fixed the installation of the WinDriver USB Linux GPL driver
— windrvr6_usb.ko
— on the Debian Squeeze distribution.
-
DriverWizard PCI: Fixed a compilation error in generated user-mode driver
projects that include interrupt transfer commands
(issue
since v10.3.1).
-
USB on Linux: Fixed a memory leak in USB control transfers.
-
PCI on Windows: Fixed occasional errors in the
WD_INTERRUPT
lost interrupts counter (dwLost field).
Version 10.3.1
(Release Date: May 18, 2011)
New Features
-
Windows 7 and Server 2008: Added support for
Windows 7 and Windows Server 2008 R2 Service Pack 1.
-
Linux: Added support for Linux kernel 2.6.38.
Enhancements
-
PCI Xilinx samples: The Xilinx Virtex5 sample
(WinDriver/xilinx/virtex5/)
has been replaced with a generic sample for PCI Express cards with the
Xilinx Bus Master DMA (BMD) design — WinDriver/xilinx/bmd_design; the sample files
and APIs were renamed accordingly. The new sample was tested with the
Xilinx Virtex and Spartan development kits.
-
PCI Xilinx BMD Kernel PlugIn sample: Added a
KP_BMD_Open_32_64() function to WinDriver/xilinx/bmd_design/kp/kp_bmd.c
(previously
WinDriver/xilinx/virtex5/bmd/kp/kp_vrtx.c).
-
PCI: Removed unnecessary pointer types and renamed internal struct types in
the pci_diag sample and the generated
DriverWizard Kernel PlugIn library and driver code, to conform to coding
conventions and avoid confusion.
Fixes
-
USB on Linux: Fixed DriverWizard identification of USB devices on CentOS
Linux distributions (issue
since v10.2.1).
-
Mac OS X: Fixed the support for running 32-bit applications —
including the DriverWizard and wddebug_gui
— on 64-bit Mac OS X platforms. As part of this fix, there are now
separate WinDriver distributions for 32-bit and 64-bit Mac OS X.
-
USB on Windows: Fixed BSOD on return from standby after sending a
SET_CONFIGURATION request from the user mode to the device
(issue
since v9.2.1).
-
Windows CE: Fixed project_wd.bib to
support installation of the WinDriver kernel module on WinCE6 platforms.
-
PCI: Removed the previous limitation on the amount of DMA handles that may
be opened simultaneously.
-
Linux: Fixed driver installation error ("implicit declaration of function
init_MUTEX") on Linux kernels with real-time patches
(issue
since v10.2.1).
-
Kernel PlugIn: The Kernel PlugIn interrupt enable and disable functions
were previously not called when using a 32-bit user-mode application with
a 64-bit Kernel PlugIn driver (issue
since v10.3.0).
-
Kernel PlugIn on Windows: Fixed BSOD as a result of disabling and enabling
of the WinDriver kernel module while there is an enabled Kernel PlugIn
driver.
-
Kernel PlugIn: Fixed the sample and DriverWizard generated C and C#
PCI code to pass the correct context type from the user mode to the Kernel
PlugIn driver, and fixed the context casting in the Kernel PlugIn high-IRQL
legacy interrupts handler, to resolve a previous OS crash when receiving
legacy interrupts (issue
since v10.3.0).
-
Kernel PlugIn: Fixed a bug in the sample and DriverWizard generated
Kernel PlugIn open functions, which previously resulted in an OS crash when
opening a handle from the user mode to the Kernel PlugIn driver
(issue
since v10.3.0).
Obsolete Features
-
Stopped support for Windows 2000.
Version 10.3.0
(Release Date: January 30, 2011)
New Features
-
Windows: Added a version of the WinDriver .NET API DLL
(wdapi_dotnet<version>.dll) for
.NET Framework 4.0.
-
Linux: Added support for Linux kernel 2.6.37.
Enhancements
-
USB on Windows CE: Improved streaming performance.
-
PCI on Linux and Mac OS X: Implemented the
WDC_GET_ENABLED_INT_LAST_MSG macro, for retrieving the message
data of the last received MSI/MSI-X interrupt.
-
USB on Windows: Added a .NET wrapper for
WDU_SelectiveSuspend().
-
Kernel PlugIn (PCI on Windows, Linux, and Mac OS X): Added support for
communicating with a 64-bit Kernel PlugIn from a 32-bit application.
The changes include a new
KP_INIT struct field
(funcOpen_32_64), and improvements to the PCI Kernel PlugIn
sample (kp_pci) and the DriverWizard
Kernel PlugIn code generation.
Fixes
-
Windows: wdreg — fixed
enabling/disabling of multiple devices in an INF file when encountering
an error with one of the devices.
-
PCI on Linux x86_64: Fixed a crash during PCI read/write operations —
for example, in calls to
WD_Transfer(), or during the
execution of interrupt transfer commands.
-
USB on 64-bit Windows: Fixed an OS crash when calling
WDU_StreamGetStatus() from a 32-bit application.
-
Linux 2.4.x: Fixed the WinDriver build process (issue
since v10.2.1).
-
USB on Windows: Fixed the behavior of isochronous write (OUT) streams with
the
USB_ISOCH_NOASAP flag set.
-
Windows: Fixed the support for the Windows 7 WDK build options —
win7 and win7_x64 — in the
ddk_make.bat build script. This also
resolved related Kernel PlugIn build issues.
(Issue
since v10.2.1) -
PCI on Windows:
WDC_PciDeviceOpen() — fixed
identification of PCI devices that were not registered with WinDriver
(issue
since v10.2.1).
-
Debug Monitor: Changed the default debug level of the command-line Debug
Monitor utility — wddebug — to
D_TRACE, to match the GUI Debug Monitor utility
(wddebug_gui).
-
PCI on Mac OS X: Fixed an OS crash when reusing a DMA buffer for more than
one transfer (issue
since v10.2.0).
-
PCI on Linux 2.6.x: Fixed a possible kernel panic when allocating a
contiguous DMA buffer.
-
PCI on Mac OS X: Fixed an OS crash when unregistering a Plug-and-Play /
power-management PCI event (issue
since v10.2.0).
-
USB on 64-bit Linux: Fixed infinite-timeout handling in
WDU_Transfer().
-
PCI on Mac OS X: Fixed occasional calls to the user interrupt handler
when no hardware interrupt had occurred.
-
PCI on Mac OS X: Fixed the value of the virtual kernel-mode mapped address
returned by
WDC_DMAContigBufLock(),
WDC_SharedBufferAlloc(), and WD_DMALock(), for a
contiguous DMA or shared buffer allocation.
The fix resolved an OS crash when using the returned address in a data
transfer.
-
PCI on Mac OS X: Fixed the detection of device memory regions.
-
PCI on Mac OS X and Windows CE: Added interrupt resource cleanup for devices
that have not been explicitly closed by the application, as part of
WinDriver's application cleanup.
-
PCI: Fixed an application crash upon passing an invalid device handle to
WDC_ReadXXX() or WDC_WriteXXX().
-
Windows Mobile ARMV4I: Fixed incorrect path to the WinDriver API library in
the sample and generated WinDriver Platform Builder projects, which caused the
project build to fail (issue
since v7.0.1).
-
PCI on 64-bit OSs: Fixed a memory leak caused by neglecting to unmap
user-mode memory space from kernel mode when running 32-bit applications.
-
ISA/PCMCIA on Windows Vista and higher: Fixed an OS crash when calling
WDC_IntDisable() for ISA/PCMCIA devices
(issue
since v9.2.0).
-
PCI on Mac OS X: Fixed handling of 64-bit DMA addresses.
Version 10.2.1
(Release Date: September 1, 2010)
New Features
-
Added support for Windows Embedded Standard 7.
-
Linux: Added support for the Linux 2.6.30–2.6.35 kernels.
Enhancements
-
Windows: Added support for the Microsoft Visual Studio 2010 IDE.
-
Windows: Enhanced the ddk_make.bat build
script, and the MS Visual Studio Kernel PlugIn sample and DriverWizard-generated
projects:
-
Added a build environment for Windows 7.
-
Added support for the build options in versions 7600.x of the
Windows Driver Kit (WDK).
-
PCI: Improved the performance of
WDC_PciDeviceOpen().
Fixes
-
DriverWizard (Windows): Fixed compilation of 32-bit applications,
generated using the 64-bit Windows DriverWizard.
-
PCI on Linux PPC: Fixed the scan for PCI cards on Linux PPC kernel 2.6.23
and above, which previously resulted in problems locating all connected PCI
cards and opening the cards using the WinDriver utilities
(issue
since v9.1.0).
-
Windows 64-bit: Fixed an internal race condition that caused occasional
OS crashes when running 32-bit applications on 64-bit Windows
platforms, including when powering off a USB device during the
application's execution.
Version 10.2.0
(Release Date: June 7, 2010)
New Features
-
WinDriver PCI: Added support for PCI and PCI Express on Mac OS X 10.5.x–10.6.x.
Fixes
-
Kernel PlugIn (Linux): Fixed the Linux DriverWizard code generation of
Kernel PlugIn projects that contain upper-case letters in the project name.
-
Windows USB: Added definition of the
USB_ISOCH_RESET flag in
the .NET and Delphi WinDriver USB APIs.
-
DMA (Linux PCI): Fixed Scatter/Gather DMA address calculation on Linux
(issue
since v9.2.1).
-
Windows: Fixed possible deadlock in
ThreadWait() when callback
completion is not signaled properly (issue
since v10.1.1).
-
Windows: Added driver signature for Windows Server 2008 and
Windows 7.
-
PCI/PCMCIA/ISA on 64-bit operating systems: When running 32-bit
applications on 64-bit platforms, the device registration — using
WDC_PciDeviceOpen() / WDC_PcmciaDeviceOpen() /
WDC_IsaDeviceOpen(), or WD_CardRegister() —
previously ignored the item registration options that were set in the
dwOptions field of the WD_ITEMS structures.
Version 10.1.1
(Release Date: January 14, 2010)
Enhancements
-
Kernel PlugIn (Linux): Modified the distribution method for Linux Kernel
PlugIn drivers, to allow distribution of the drivers without their source
code.
-
Kernel PlugIn (Linux): Added support for building Kernel PlugIn drivers
using the kbuild framework.
-
PCI: Added a new
WDC_PciScanRegisteredDevices() function for
scanning the PCI bus only for devices that have been registered to work
with WinDriver.
Fixes
-
USB: Modified the usb_diag.c sample and
the usb_diag.c library to support reading,
writing, and reseting of pipes on inactive interfaces of a multi-interface
device.
-
USB streaming: Modified the USB streaming API and the
usb_diag sample to prevent attempts to
perform stream transfers on the control pipe.
-
Linux: Fixed the support for the
--enable-usb-support=no
configuration option for WinDriver kernel module builds
(issue
since v10.0.0).
-
Linux and Windows installation: Fixed potential WinDriver installation
crashes due to incorrect use of ACPI tables.
-
Windows USB: Fixed a potential OS crash when using
WDU_Transfer() to perform a data-pipe transfer with a
non-NULL setup packet (issue
since v10.0.0).
-
Windows USB: Fixed OS crash when issuing vendor or class USB control
transfers with
bRequest=0x09 (issue
since v10.0.0).
-
Windows USB: Fixed assignment of full-speed maximum-URB transfer sizes to
high-speed USB devices.
-
PCI: Fixed OS crash when calling
WDC_PciScanDevicesByTopology() for a malfunctioned PCI
device (issue
since v8.0.0).
-
PCI/PCMCIA/ISA: Fixed the definitions of the
WDC_DBG_DBM_FILE_ERR and WDC_DBG_DBM_FILE_TRACE
macros.
-
USB streaming API: Calls to
WDU_StreamRead() for a blocking
stream would previously fail to return when the size of the data read from
the device was larger than the remaining space in the stream's data buffer
(issue
since v9.0.1).
-
Windows: Fixed occasional hangs when calling
ThreadWait()
from an external DLL (issue
since v7.0.0).
-
Windows USB streaming API: Reset the stream timer upon release of the
stream buffer (issue
since v9.0.1).
Version 10.1.0
(Release Date: September 1, 2009)
New Features
-
Added support for Windows 7 (32-bit and 64-bit).
Fixes
-
Windows USB: Fixed occasional lost packets in isochronous transfers
when the
USB_ISOCH_NOASAP flag was not set
(issue
since v10.0.2).
-
Linux USB: Fixed execution of 32-bit WinDriver USB applications on 64-bit
Linux platforms (issue
since v9.2.1).
Version 10.0.2
(Release Date: July 14, 2009)
New Features
-
Linux: Added support for the Linux 2.6.29 kernel.
Enhancements
-
Delphi (Windows USB): Added Delphi declarations, in
wd_utils.pas, for the
WDU_StreamXXX() USB streaming API.
-
PCI/PCMCIA/ISA: Removed the inclusion of the
status_strings.h header file from
wdc_defs.h, and instead, included
status_strings.h explicitly from the
relevant source files.
Fixes
-
DriverWizard (Windows PCI/PCMCIA/ISA): When generating code on
Windows using a saved DriverWizard PCI/PCMCIA/ISA project, the generated
INF file did not contain the device's vendor and product IDs
(issue
since v9.0.1).
-
C# sample and generated USB code (Windows): Fixed a race condition
that occurred when calling
DeviceDetach() during
WDU_Init().
-
DMA (Linux PCI): Fixed problems in DMA handling, which resulted in
occasional system crashes, on Linux kernels 2.6.25 and above
(issue
since v10.0.1).
-
DriverWizard (PCI/ISA): Fixed access violation in the DriverWizard ISA and
virtual PCI device resource editing, which would occasionally cause
DriverWizard to hang (issue
since v9.0.1).
-
Interrupts: Fixed an issue with the lost-interrupts counter, which could
result in repeated calls to the user's interrupt handler even when no
interrupts were generated.
-
USB (Windows): Fixed Windows OS crash when a single-blocking USB
transfer returned due to timeout expiration (issue
since v10.0.1).
-
USB (Windows CE): Fixed delays in the return of
WDU_StreamStop() and WDU_StreamClose(), on
Windows CE (issue
since v10.0.1).
-
DriverWizard (ISA): Previously, if an ISA card had both I/O BARs and
other types of resources (memory BARs and/or an interrupt), the I/O
resource information in the generated DriverWizard code was overwritten by
the information of the other resources.
-
Linux: On some Linux distributions,
make install failed to
load the WinDriver kernel modules, because the modules were not
installed in the correct location (issue
since v9.0.1).
-
DriverWizard: Added an error message when trying to use DriverWizard
while the WinDriver kernel driver is not loaded (issue
since v9.0.1).
Version 10.0.1
(Release Date: April 1, 2009)
New Features
-
Linux: Added support for the Linux 2.6.28 kernel.
-
USB (Windows CE): Added support for USB streaming on Windows CE.
Enhancements
-
Linux: The windrvr6 driver installation
now verifies that the version of the driver matches that of the installed
windrvr6_usb driver (if installed).
-
Windows USB: Added Selective Suspend support to the
usb_diag sample and to the generated
DriverWizard USB code.
-
Debug Monitor (Windows CE): Added support for GUI execution of the
wddebug Debug Monitor utility on Windows
CE, allowing for its usage on Windows CE platforms that do not have a
command-line interface.
-
USB streaming API (Windows CE): Added a new
USB_STREAM_MAX_TRANSFER_SIZE_OVERRIDE flag to
WDU_StreamOpen() for overriding the default maximum transfer
size of read streams, on Windows CE.
Fixes
-
DriverWizard (PCI/PCMCIA/ISA): Interrupt Request (IRQ) numbers are now
displayed in DriverWizard in decimal notation, to match the generated and
sample code (issue
since v9.0.0).
-
Interrupts (Linux): Upon failure to enable Extended Message-Signaled Interrupts (MSI-X), WinDriver
will attempt to enable Message-Signaled Interrupts (MSI) instead (issue
since v9.1.0).
-
Windows CE: Fixed corruption of wdreg.exe
for Windows CE ARMV4I platforms (issue
since v9.0.0).
-
DMA (Windows): Fixed issue of incorrect data in DMA buffers after DMA
transfer completion (issue
since v9.2.1).
-
DriverWizard (Linux USB): Fixed DriverWizard identification of USB
devices on some Linux distributions, such as newer Ubuntu distributions.
-
Windows: Fixed redundant driver installations when using
wdreg with the
-compat option
to install a driver for multiple connected devices with the same hardware
ID.
-
Windows: Modified windrvr6.inf to enable
correct viewing using the Notepad Windows
application (issue
since v10.0.0).
-
Linux: Fixed the WinDriver Linux drivers installation when
running "make install" from the root WinDriver directory
(issue
since v10.0.0).
-
PCI/PCMCIA/ISA: Fixed the
WDC_DIAG_ReadWriteAddr() and
WDC_DIAG_ReadWriteBlock()wdc_diag_lib functions to correctly handle
Cancel input; this fix affects the
pci_diag and
pcmcia_diag samples and the generated
DriverWizard code (issue
since v7.0.0).
-
USB streaming API (Windows):
WDU_StreamGetStatus() now returns
WD_TIME_OUT_EXPIRED in case of a timeout
(issue
since v9.0.0).
Version 10.0.0
(Release Date: December 30, 2008)
New Features
-
Linux: Added support for the Linux 2.6.25–2.6.27 kernels.
-
Linux USB: Moved the WinDriver USB implementation for Linux to a separate
driver module (windrvr6_usb) with a GNU
General Public License (GPL).
Enhancements
-
Windows: Added official support for the Windows Server 2008 operating
system.
-
Windows Vista: WinDriver was successfully tested with Service Pack 1 of
Windows Vista.
-
Windows XP: WinDriver was successfully tested with Service Pack 3 of
Windows XP.
-
PCI: Added enhanced support for the PLX 6466 bridge, including library APIs
(plx_lib_6466) and a sample diagnostics
application (p6466_diag).
-
Windows: Added support for the Microsoft Visual Studio 2008 IDE.
-
Windows: Enhanced the ddk_make.bat build
script, and the MS Visual Studio Kernel PlugIn projects in the samples and in the
generated DriverWizard code:
-
Added a build environment for Windows Vista x64bit.
-
Added support for the build options in version 6001 (and newer)
of the Windows Driver Kit (WDK).
Fixes
-
USB: Fixed crashes when using DriverWizard and the
usb_diag sample with multi-interface USB
devices (issue
since v9.2.1).
-
PCI Express (Linux 64-bit): Fixed the Virtex 5 sample diagnostics
application (virtex5_diag); previously, on
Linux 64-bit the sample always set the DMA buffer size to zero,
regardless of user input (issue
since v9.2.0).
-
Interrupts (Windows CE): Fixed a memory leak when enabling and
disabling interrupts on Windows CE (issue
since v9.0.0).
-
DriverWizard (Linux PPC 64-bit): Fixed opening of saved DriverWizard
projects on 64-bit Linux PPC platforms.
-
PCI: The sample WinDriver PCI diagnostics application
(pci_diag) now supports simultaneous
opening of multiple Kernel PlugIn WDC device handles.
-
Windows: Returned the wdreg warning when
trying to install or uninstall the Windows WinDriver kernel driver
(windrvr6.sys) while there are open
handles to this driver (issue
since v9.0.0).
-
Windows: Fixed memory leaks in the WinDriver installation utility
(wdreg).
-
DriverWizard PCI/PCMCIA/ISA: Fixed saving of register access modes in
DriverWizard projects; previously, when opening a saved DriverWizard
project, the access mode for any defined registers was set to
Read/Write, regardless of the access mode that was originally
defined. (Issue
since v9.0.0)
Obsolete Features
-
Windows 98/Me: Removed Windows 98/Me files from the WinDriver
distribution. (Support for Windows 98/Me was removed in v9.2.1).
Version 9.2.1
(Release Date: July 3, 2008)
New Features
-
Linux: Added support for the Linux 2.6.24 kernel.
-
PCI/PCMCIA/ISA: Added a
WDC_SharedBufferAlloc() function for
allocating a shared user-mode and kernel-mode memory buffer — namely
for the purpose of sharing data between a user-mode application and a
Kernel PlugIn driver.
Enhancements
-
Debug Monitor (Windows Vista): Added inherent support for logging
kernel debugger messages in the Debug Monitor
(wddebug_gui /
wddebug) on Windows Vista.
-
Kernel PlugIn (Windows Vista): Added a build environment for Windows
Vista to the WinDriver Kernel PlugIn projects.
Fixes
-
Windows Vista: The WinDriver entries in the Windows Start menu
were previously not removed when uninstalling WinDriver from Windows
Vista.
-
Samples (Windows): Fixed compilation of the WinDriver samples using the MSDEV
6.0 IDE.
-
Kernel PlugIn (Windows XP): Fixed loading of the Kernel PlugIn samples on
Windows XP (issue
since v9.2.0).
-
Windows XP Embedded: Modified WinDriver's installation using the XP Embedded
WinDriver component (windriver.sld) to ensure
that WinDriver is loaded after the OS drivers.
-
USB (Windows): Fixed an occasional driver crash when plugging out a USB
device immediately after it has been plugged in.
-
USB (Windows CE): Fixed handling of multi-interface USB devices on
Windows CE.
-
Windows: wdreg would occasionally hang
when used to install multi-device INF files that contain more than 15
devices.
-
Fixed execution of 32-bit applications on 64-bit architectures
(issue
since v9.1.0).
-
Windows: The wdreg
install
command would sometimes pre-install multi-device INF files even if one or
more of the devices were connected to the host.
-
Windows: Fixed incorrect wdreg status
reports for installation and uninstallation of multi-device INF files
(issue
since v8.1.1).
-
DriverWizard (Windows): Fixed the hardware IDs in the generated
DriverWizard INF files for virtual PCI devices (issue
since v9.0.0).
-
Interrupts (Windows): Updated the Delphi and VB 6.0 interrupt APIs to
support Message-Signaled Interrupts (MSI) and Extended Message-Signaled Interrupts (MSI-X)
(issue
since v9.1.0).
-
Kernel PlugIn: Fixed a compilation error in the Xilinx Virtex 5 PCI Express
sample (kp_vrtx5)
(issue
since v9.2.0).
-
Windows: Fixed the Partners Libraries links in the Start Windows
WinDriver menu.
Obsolete Features
-
Stopped support for Windows 98/Me.
-
USB: Stopped support for USB on Linux PPC platforms.
Version 9.2.0
(Release Date: February 20, 2008)
Enhancements
-
DriverWizard (PCI): Added support for Message-Signaled Interrupts (MSI) and Extended Message-Signaled Interrupts
(MSI-X), including GUI indications, INF file generation, and user-mode
and Kernel PlugIn code generation.
-
PCI Express: Added a Kernel PlugIn sample for the Xilinx Virtex 5 PCI
Express chip with Bus Mastering DMA Validation Design (BMD) firmware
(kp_vrtx5) and modified the Virtex 5 BMD
library (virtex5_lib) to support the new
sample. The sample demonstrates Kernel PlugIn handling of Message-Signaled Interrupts (MSI)
or Extended Message-Signaled Interrupts (MSI-X).
-
Interrupts (Linux): Added support for IRQ 0 on PowerPC Linux platforms.
-
Interrupts (Windows CE): Modified the WinDriver interrupt handler to correctly
handle shared PCI interrupts.
-
Interrupts: The WinDriver interrupt handler was modified to claim ownership of
non-shared interrupts, regardless of the interrupt transfer commands.
Fixes
-
Kernel PlugIn (Linux): Fixed loading of Kernel PlugIn drivers on Linux
(issue
since v9.1.0).
-
USB (Linux): A massive load of USB transfer requests on Linux would, on
occasion, result in an incorrect transfer timeout error
(issue
since v9.0.0).
-
USB (Windows): Fixed release of USB devices detached during standby mode on
Windows (issue
since v9.1.0).
-
USB (Windows): Fixed Windows crash as a result of abnormal termination of a
user-mode WinDriver USB application when listening to a bulk pipe using the
streaming API (issue
since v9.0.1).
-
ISA interrupts: Restored support for ISA interrupts
(issue
since v9.1.0).
-
Linux: Resolved WinDriver 64-bit Linux installation crash
(issue
since v9.1.0).
-
Kernel PlugIn (Linux): Modified the Linux Kernel PlugIn
free()
function implementation to comply with the method used by the Kernel
PlugIn malloc() implementation (issue
since v9.1.0).
Version 9.1.0
(Release Date: December 12, 2007)
New Features
-
PCI interrupts: Added support for Message-Signaled Interrupts (MSI) and MSI-X on Windows
Vista and Linux.
-
PCI Express: Added enhanced support for the Xilinx Virtex 5 PCI Express
chip with Bus Mastering DMA Validation Design (BMD) firmware, including
library APIs (virtex5_lib) and a sample
application (virtex5_diag). The sample
demonstrates DMA and Message-Signaled Interrupts (MSI) handling.
-
Linux: Added support for the Linux 2.6.22 and 2.6.23 kernels.
-
Windows XP Embedded: New Windows XP Embedded WinDriver component
(windriver.sld) for automatic driver
installation on Windows XP Embedded platforms.
Fixes
-
USB (Linux): Control transfers with no data on Linux previously failed with
an invalid parameter error (issue
since v9.0.1).
-
USB (Linux): Fixed problems with
WDU_Transfer() write (OUT)
transfers using large data buffers on Linux (issue
since v9.0.1).
-
USB (Windows): Control requests of type 'class' with recipient 'other' were
previously transferred as vendor requests.
-
Linux: Fixed installation of renamed WinDriver kernel modules using the
wdreg script (issue
since v9.0.0).
-
Linux: Fixed WinDriver configuration issues with the openSUSE 10.2 Linux
distribution.
-
Linux: Fixed WinDriver configuration issues with the UBUNTU 7.1.0 Linux
distribution.
-
Linux: Added support for
OS_get_device_property for WinDriver
kernel module builds with the enable-usb-support=no
configuration option (issue
since v9.0.0).
-
DMA: Fixed
WD_DMALock() 64-bit addresses handling on
32-bit Windows and Linux platforms (issue
since v8.0.0).
-
DMA (Linux): Fixed memory leak when locking contiguous DMA buffers on
Linux platforms (issue
since v8.1.0).
-
Kernel PlugIn (Linux): Resolved Kernel PlugIn memory allocation issues on
some embedded Linux 2.6 distributions (issue
since v7.0.0).
-
DriverWizard (Linux): DriverWizard for Linux is now statically linked with
the QT libraries, enabling usage of the wizard on these operating systems
regardless of whether the QT libraries have been installed on the target
platform (issue
since v9.0.0).
-
PCI (Windows and Windows CE): Added
WDC_PciScanDevicesByTopology() to the WinDriver API DLL
(wdapi<version>.dll) exports
(issue
since v8.0.0).
-
Fixed the CCString::Format class method to correctly support large strings;
as a result, fixed issue with long wdreg
log messages on Windows.
Version 9.0.1
(Release Date: June 13, 2007)
New Features
-
Linux: Added support for the Linux 2.6.20 and 2.6.21 kernels.
-
USB Streaming API: Added a new function for retrieving a stream's current
status —
WDU_StreamGetStatus().
Enhancements
-
USB: Added stream transfers performance tests to the WinDriver USB diagnostics
sample (usb_diag).
-
DriverWizard PCI: The device Plug-and-Play information is now verified when
opening existing DriverWizard PCI projects.
-
DriverWizard GUI: Added support for displaying DriverWizard in full screen
mode in resolutions higher than 1024 x 768 (issue
since v9.0.0).
-
DriverWizard: Added support for using DriverWizard with non-English Windows
installations.
-
DriverWizard: Improved the support for keyboard commands
(issue
since v9.0.0).
-
Kernel PlugIn: Added digital signature of the sample Windows Kernel PlugIn
PCI driver — kp_pci.sys —
allowing for a smooth installation of the driver on Windows platforms that
prohibit or limit installation of unsigned drivers (e.g., Vista x64).
-
USB Streaming API: Added a new
WDU_StreamOpen() flag —
USB_STREAM_OVERWRITE_BUFFER_WHEN_FULL — for overwriting
a read stream's data when there is not enough free space in the stream's
data buffer to complete the transfer.
-
USB: Enhanced
WDU_Transfer() to enable initiation of
zero-length transfers by either setting the buffer size to zero or passing
a NULL buffer pointer.
-
DriverWizard: Added miscellaneous GUI improvements.
Fixes
-
Windows 98: Fixed the driver installation on Windows 98 platforms
(issue
since v9.0.0).
-
Windows: Fixed compilation of projects containing the UNICODE preprocessor
definition (issue
since v9.0.0).
-
PCI/PCMCIA/ISA: Fixed compilation of generated code with no transfer
commands (issue
since v9.0.0).
-
DriverWizard PCI/PCMCIA/ISA: Fixed DriverWizard crash when generating code
for devices with no interrupts (issue
since v9.0.0).
-
Linux PCI: Fixed Scatter/Gather DMA lock for buffers that are not page aligned
(issue
since v6.2.0).
-
PCI/PCMCIA/ISA:
WDC_Version() can now be called before calling
WDC_DriverOpen()(issue
since v7.0.0).
-
USB Streaming API: Fixed streaming API cleanup in the case of abnormal
application termination (issue
since v9.0.0).
-
USB Streaming API: Fixed zero-length transfer crash
(issue
since v9.0.0).
-
DriverWizard USB: Previously write to pipe would occasionally result in
modification of the input data (issue
since v9.0.0).
-
DriverWizard USB: Fixed INF generation for multiple-interface devices
(issue
since v9.0.0).
-
PLX: Fixed the local base address used for master devices in the PLX
library (issue
since v7.0.0).
-
PCI/PCMCIA/ISA Interrupts: Fixed the return value of
WD_IntWait().
-
Fixed exit cleanup of 32-bit applications on 64-bit architectures
(issue
since v6.0.0).
-
USB: Enabled use of
WDU_GetDeviceRegistryProperty(),
WDU_GetDeviceAddr(), and WD_GetDeviceProperty()
from 32-bit applications running on 64-bit architectures.
-
DriverWizard ISA: Fixed DriverWizard code generation crash
(issue
since v9.0.0).
-
Windows: Modified the wdreg installation
utility to load the Driver Install Frameworks API (DIFxAPI) DLL only when the program is run
without the
-compat flag (issue
since v8.1.0).
-
Windows: Modified the wdreg installation
utility to avoid automatic rescan for new hardware when installing the
WinDriver kernel module (windrvr6.sys or a
renamed version of this driver). (Issue
since v8.1.0)
-
DriverWizard PCI/ISA: Added support for opening legacy DriverWizard
projects created with earlier versions of WinDriver (issue
since v9.0.0).
-
Windows Mobile 5: Fixed the DriverWizard project files code generation
(issue
since v8.0.1).
-
.NET PCI/PCMCIA/ISA: Modified the WinDriver .NET API DLL
(wdapi_dotnet<version>.dll) in order
to prevent the garbage collector from relocating transfer commands used for
interrupt handling while the interrupt is enabled
(issue
since v7.0.0).
-
USB: Modified the Silicon Laboratories C8051F320 sample
(c8051f320_diag) to support buffer sizes
that are not multiples of 4KB.
-
Windows CE 6.0: Fixed prioritization of interrupts and events
(issue
since v9.0.0).
Version 9.0.0
(Release Date: March 27, 2007)
New Features
-
Windows USB: Added streaming API to support synchronous and asynchronous
stream transfers on Windows 2000 and higher.
-
Windows CE: Added support for Windows Embedded CE 6.0.0 and Windows Mobile
6.0.
-
Linux: Added support for the Linux 2.6.18 and 2.6.19 kernels.
-
Driver distribution: Added support for changing the name of the
WinDriver kernel module on Windows, Linux, and Solaris.
-
Windows USB: Integrated the Ellisys Explorer 200 USB bus analyzer
into DriverWizard.
-
USB on Windows: Added support for selective bus suspend on Windows XP SP2
and higher — new
WDU_SelectiveSuspend() function.
-
USB on Windows: Added support for port cycling — i.e., device
re-enumeration without a physical reset — to the
WDU_ResetDevice() function (new CYCLE_PORT flag).
-
PCI/PCMCIA/ISA: Added a new
WDC_Version() function to the WDC
C and .NET libraries, for retrieving the version of the WinDriver kernel
module.
Enhancements
-
GUI: Re-designed and improved the Graphical User Interface (GUI) of the
DriverWizard and Debug Monitor utilities.
-
Windows: Upgraded the wdreg installation
utility to use the latest version of the Driver Install Frameworks API (DIFxAPI) DLL —
difxapi.dll 2.1.0.0.
-
Windows 2000 and higher: Tested the WinDriver kernel driver
(windrvr6.sys) with the Microsoft Driver
Test Manager (DTM) tool, and added a PREfast output file, required for new
WHQL certifications, to the Windows distribution.
-
Windows: Provide a WHQL-compliant WinDriver kernel driver
(windrvr6.sys) for Windows 2000 and
higher, and a non-WHQL-compliant driver for Windows 98/Me and higher.
Fixes
-
DMA: Improved handling of 64-bit DMA transfers on 32-bit Windows
platforms.
-
PCI/PCMCIA/ISA: Fixed behavior of the
WD_ITEM_DO_NOT_MAP_KERNEL flag on Windows 98/ME.
-
Linux: Fixed access to large memory addresses (> 32-bit) when running
32-bit applications on 64-bit Linux platforms.
-
.NET (PCI/PCMCIA/ISA): Modified the WinDriver API DLL
(wdapi_dotnet<version>.dll), and the
C# PCI sample (PCI_Sample) and PLX
library (plx_lib_dotnet), in order to
provide specific support for accessing the interrupt transfer commands
array from the interrupt handler routine.
-
Windows USB: Configuration of USB devices with a large configuration
descriptor previously failed with error
WD_USB_DESCRIPTOR_ERROR.
-
Windows USB: Fixed the maximum size of USB interrupt and bulk
(Windows Vista) transfers (previously limited to 4KB).
Known Limitations
-
Windows 98/Me: DriverWizard cannot be used to develop a driver on Windows
98/Me.
However, a driver developed on Windows 2000 or higher can still be
distributed to a Windows 98/Me PC.
Version 8.1.1
(Release Date: October 17, 2006)
New Features
-
Linux: Added support for PowerPC 64-bit architectures on Linux 2.6.x
kernels.
-
Linux: Added support for Linux kernels 2.6.17–2.6.18 and the Fedora
Core 6 pre-releases.
-
USB: Added enhanced support for the Agere USS2828 USB chip,
including library APIs (uss2828_lib and
uss2828_diag_lib) and a sample application
for the device's default firmware
(default_firmware_sample).
Enhancements
-
Windows Vista: WinDriver was tested on Windows Vista Beta2, RC1 and RC2 (x86
and x64).
-
USB: Improved the USB sample (usb_diag)
and generated DriverWizard code.
-
Windows: Improved the wdreg installation
utility by utilizing the Driver Install Frameworks API (DIFxAPI) for driver installation,
pre-installation and uninstallation.
-
USB (Windows): Added
WDU_Transfer() flag
(USB_BULK_INT_URB_SIZE_OVERRIDE_128K) for overriding the
maximum size of the USB Request Blocks (URB) on bulk and interrupt pipes.
-
Linux and Solaris: Implemented enhancements that were already added for
Windows / Windows CE in version 8.0:
-
DMA: Improved the performance of the DMA synchronization
functions (
WD_DMASyncCpu() / WD_DMASyncIo() /
WDC_DMASyncCpu() / WDC_DMASyncIo()).
-
PCI Express: Added support for configuration spaces that are mapped
beyond 4GB.
-
USB (Linux): Enhanced the Cypress EZ-USB API, including multiple
devices support and a new EZ-USB diagnostics library
(ezusb_diag_lib).
-
New ISA sample: Added sample for the Intel 8253/8254 programmable timer
chips (available on any IBM PC).
Fixes
-
Linux PCI: Fixed 64-bit memory block transfers on 32-bit x86 Linux
architectures.
-
Windows PCI: Avoid usage of pageable memory in interrupt.
-
Linux: Fixed installation problem on some Linux 2.6.15 kernels.
-
Backward compatibility (PCI): Fixed the ability to use old WinDriver PCI
applications with a newer WinDriver kernel module
(issue
since v8.0.0).
-
Windows CE: Fixed compilation of applications that use the enhanced
interrupts option.
-
DMA: Fixed the AMCC library's DMA API
(WinDriver/amcc/lib/amcclib.c).
-
VB.NET (Windows): Fixed automatic insertion of the WinDriver license
registration string into the generated VB.NET DriverWizard code.
-
Windows USB: Re-plugging a USB device immediately after unplugging it could
previously result in a crash.
-
Linux and Solaris: Implemented fixes that were already added for Windows /
Windows CE in version 8.0:
-
Kernel PlugIn: Fixed memory leak in Kernel PlugIn initialization.
-
Kernel PlugIn: Interrupts are now automatically disabled when an
application is aborted.
-
DMA: Fixed DMA handling for 32-bit applications running on 64-bit
architectures (Linux AMD64 / Solaris SPARC64).
Version 8.1.0 for Windows and Windows CE
(Release Date: August 15, 2006)
New Features
-
Added support for Windows Vista Beta 2 (and later) for x86 and x64.
-
Windows: Added a WinDriver symbol file
(windrvr6.pdb) to the WinDriver distribution,
required for getting your driver digitally signed with Microsoft's Windows Hardware Quality Labs (WHQL).
-
WinDriver USB Device (Firmware Development Kit): Added support for compiling
Microchip PIC18F4550 firmware with version 3.04 of the MCC18 compiler.
Enhancements
-
DMA: Improved the performance of the DMA synchronization functions
(
WD_DMASyncCpu() / WD_DMASyncIo() /
WDC_DMASyncCpu() / WDC_DMASyncIo()).
-
PCI Express: Added support for configuration spaces that are mapped beyond
4GB.
-
USB: Enhanced the Cypress EZ-USB API, including multiple devices support
and a new EZ-USB diagnostics library
(ezusb_diag_lib).
-
Windows: Improved the wdreg.exe
installation utility in order to comply with the requirements of
Microsoft's Windows Hardware Quality Labs (WHQL).
-
New ISA sample: Added sample for the Intel 8253/8254 programmable timer
chips (available on any IBM PC).
-
.NET: Modified namespaces names to include a "Jungo" prefix.
-
Windows CE: Changed the location of the
wdapi<version>.lib WinDriver API
library.
Fixes
-
Kernel PlugIn: Fixed memory leak in Kernel PlugIn initialization.
-
Kernel PlugIn: Interrupts are now automatically disabled when an
application is aborted.
-
Windows USB: Fixed handling of isochronous transfers for buffers smaller
than 8 bytes.
-
Windows USB: Issuing a read (IN) control command with no data stage from
DriverWizard previously blocked.
-
Windows CE USB: Disabling of shared interrupts no longer affects other
drivers listening to the shared interrupt.
-
Windows CE USB: Fixed reset pipe toggle mismatch issues.
-
DMA: Fixed DMA handling for 32-bit applications running on 64-bit
architectures (issue
since v8.0.0).
-
Windows PCI: Multi-transfer functions (
WD_MultiTransfer() /
WDC_MultiTransfer()) now also handle mask commands
(CMD_MASK) when called from 32-bit applications that are run
on 64-bit architectures (issue
since v8.0.0).
Obsolete Features
-
Stopped support for Windows NT 4.0.
-
Linux: Stopped support for the Intel Itanium and Itanium 2
architectures (IA64).
Version 8.0.2
(Release Date: June 6, 2006)
New Features
-
Added support for Windows Mobile 5.0.
-
Linux: Added support for kernels 2.6.14–2.6.16.
-
WinDriver USB Device (Firmware Development Kit): Added support for the Silicon
Laboratories C8051F340 development board.
-
Windows CE: Added a WinDriver component to the Platform Builder catalogue to
simplify the driver deployment.
-
WinDriver USB Device (Firmware Development Kit): Added support for compiling
Microchip PIC18F4550 firmware with version 3.0 of the MCC18 compiler.
Enhancements
-
PCI/PCMCIA/ISA: Improved the performance of
WD_Transfer()
and WD_MultiTransfer() and the WDC APIs that use these
functions (WDC_Read/WriteXXX(), WDC_AddrXXX() and
WDC_MultiTransfer()).
-
USB (Windows): Improved performance of USB transfers for high-speed devices
on Windows XP and Server 2003.
-
PCI (Linux): The maximum contiguous DMA buffer size is no longer restricted
to 128KB.
-
Improved the precision of
WD_Sleep() for small sleep values.
Fixes
-
PCI/PCMCIA/ISA: Fixed and improved the clean-up functionality: Improved the
performance of
WD_CardCleanup() /
WDC_CardCleanupSetup() and ensured that the clean-up commands
set in the calls to these functions are executed as the first thing upon
termination of a WinDriver application.
-
DMA: Fixed locking of unaligned Scatter/Gather DMA buffers on Linux.
-
Windows 64-bit: Fixed DMA and interrupt issues when running 32-bit
applications on 64-bit systems (issue
since v8.0.0).
Version 8.0.1
(Release Date: April 4, 2006)
Enhancements
-
USB on Windows CE: Added support for
WDU_ResetDevice() on
Windows CE 5.0.
-
.NET USB (Windows): Added support for simultaneous communication with
multiple interfaces on the same USB device.
-
Windows: The PCI Express configuration space can now be accessed even if no
INF file has been installed for the device.
-
Windows: Improved handling of devices with resources filtered by an INF
file or a filter driver.
-
Solaris: The
remove_windrvr WinDriver uninstallation script now
removes all installation traces from the install_windrvr
installation script.
-
Linux: Added an
auto option to the
wdreg driver script utility to enable
automatic detection of udev support on the target platform.
Fixes
-
DMA: Fixed usage of the DMA synchronization functions
(
WD_DMASyncIo() / WDC_DMASyncIo() /
WD_DMASyncCpu() / WDC_DMASyncCpu()) from 32-bit
applications running on 64-bit kernels (Windows x64 / Linux x86_64 /
Solaris SPARC64).
-
Linux: Fixed WinDriver installation on some Linux 2.4 kernels
(issue
since v8.0.0).
-
PCMCIA (Windows): Fixed behavior of
WDC_PcmciaSetWindow() (issue
since v7.0.0).
-
.NET (Windows): Fixed PCI events handling under .NET Framework 2.0
(issue
since v8.0.0).
-
.NET (Windows): Fixed the .NET implementation of the
WDU_GetLangIDs() and WDU_GetStringDesc()
functions.
-
.NET (Windows): Fixed the PLX MSDEV 2003 .NET solution file
(issue
since v8.0.0).
-
.NET (Windows): PCI C# sample — fixed the behavior of
PCI_Device::Open() in the event of an error
(issue
since v8.0.0).
Version 8.0.0
(Release Date: February 21, 2006)
New Features
-
Windows: Added support for Windows XP Pro x64 and Windows Server 2003
x64 on the AMD64 and Intel EM64T architectures ("x64").
-
Windows: Added support for Visual Studio 2005 on x86 and AMD64, including
sample and generated DriverWizard C, C# and Visual Basic .NET projects.
Note: As a result of this addition, the directories structure of the WinDriver
C and .NET sample and generated DriverWizard projects has changed.
-
Linux: Added support for the Intel Itanium and Itanium 2 architectures
(IA64).
-
Linux: Added support for Linux 2.6.14.
-
Solaris: Added support for Solaris 10 and OpenSolaris.
-
WinDriver USB Device (Firmware Development Kit): Added support for development
of device firmware for the Philips PDIUSBD12.
-
WinDriver USB Device (Firmware Development Kit): Added mass storage class
support for the Microchip PIC18F4550 development board.
-
.NET (Windows): Added DriverWizard code generation in C# (USB and
PCI) and Visual Basic .NET (USB).
-
.NET (Windows): Added a .NET PCI sample in C#.
-
USB: Added samples for the Philips PDIUSBD12.
Enhancements
-
Windows USB: Added support for simultaneous communication with multiple
interfaces on the same USB device.
-
DMA: Added support for 64-bit DMA addresses on Windows, Linux and Solaris
(new
DMA_ALLOW_64BIT_ADDRESS DMA flag).
-
.NET (Windows): Added support for communication with a Kernel PlugIn driver
from a .NET application, including
-
New
WDC_KernelPlugInOpen() function for opening a handle
to a Kernel PlugIn driver.
-
Added DriverWizard code generation of user-mode applications that
communicate with a Kernel PlugIn driver.
-
Modified the PLX .NET library APIs to support communication with a
Kernel PlugIn driver.
-
DriverWizard: Added option to call the generated DriverWizard read/write
registers functions from the Kernel PlugIn.
-
Added versioning of the WinDriver libraries, DLLs and shared objects.
This change required the following file name changes:
- wd_utils.dll –>
wdapi<version>.dll (e.g.,
wdapi800.dll)
- libwd_utils.so –>
libwdapi<version>.so (e.g.,
libwdapi800.so)
- wdapi_dotnet.dll –>
wdapi_dotnet<version>.dll
(e.g., wdapi_dotnet800.dll)
- kp_nt.lib –>
kp_nt<version>.lib (e.g.,
kp_nt800.lib)
- kp_linux.o –>
kp_linux<version>.o (e.g.,
kp_linux800.o)
- kp_solaris.o –>
kp_solaris<version>.o (e.g.,
kp_solaris800.o)
-
Moved the location of WinDriver's source files under the WinDriver
installation directory:
-
The WinDriver C source files were moved from the
src directory to the
src/wdapi directory.
-
The WinDriver .NET source files were moved from the
wdapi.net directory to the
src/wdapi.net directory.
-
DMA: Added support for locking bi-directional DMA buffers (new
DMA_TO_FROM_DEVICE DMA flag).
-
PCI: Added option to scan the PCI bus by topology (new
WD_PCI_SCAN_BY_TOPOLOGY flag and
WDC_PciScanDevicesByTopology() function).
-
Solaris: Added support for allocation of a contiguous DMA buffer that is
not associated with a specific card (already supported on other OSs).
Fixes
-
USB: Fixed set interface to the same alternate setting number as the active
alternate setting but with a different interface.
-
USB on Windows:
WDU_Transfer() and
WDU_TransferIsoch() do not allow zero-sized transfers on
isochronous pipes.
-
USB on Windows: Fixed situation whereby Windows restarted when waking up
from a hibernation state that was entered into while listening on an
isochronous pipe.
-
WinDriver USB Device (Firmware Development Kit): Fixed double buffering in the
Microchip PIC18F4550 code.
-
Delphi (Windows): Fixed and improved the sample and generated Delphi code.
-
Linux: Prevent removal of a Kernel PlugIn driver while it is being used by
an application.
-
Linux: Improved the support for IOMMU mapped DMA buffers.
-
Interrupts: Fixed interrupt masking so that the execution of the deferred
interrupt processing is dependent on the result of the mask commands
(issue
since v7.0.2).
Version 7.0.2
(Release Date: November 1, 2005)
New Features
-
WinDriver USB Device (Firmware Development Kit): Added support for the
Microchip PIC18F4550 development board.
-
PCI interrupts: Added option to define an interrupt mask in the kernel-mode
interrupt transfer commands.
-
USB Microchip PIC18F4550 development board:
-
Added a bootloader_demo sample, which
utilizes the bootloader firmware on the board to load firmware
*.hex files and program the device.
-
Added a WinDriver diagnostics library for the board
(pic18f4550_diag_lib).
-
Linux: Added backward support for 2.4x Linux kernels on x86 64-bit
platforms.
Enhancements
-
Linux: Added support for 2.6.13 kernels.
-
WinDriver USB Device: Added API for initializing and accessing the I2C
interface and for controlling the digit LED on the Cypress EZ-USB FX2LP
CY7C68013A development board.
-
.NET (Windows): Improved the PLX C# library
(plx_lib_dotnet) and sample diagnostics
application (PLX_Sample).
-
PLX: Modified the interrupt APIs in the PLX libraries
(plx_lib — C ;
plx_lib_dotnet — C#) to use
the new interrupt mask feature.
-
DriverWizard (Windows): Added automatic association of
*.wdp files with DriverWizard.
-
PCI/PCMCIA/ISA: Prevent locking of non-shared overlapping memory/IO regions
on a card.
-
PCI/PCMCIA/ISA on Windows NT 4.0/2k/XP/Server 2003 and CE: Allow
mapping of physical PC memory (RAM) as cached, using the new
WD_ITEM_ALLOW_CACHE flag.
-
64-bit Linux and Solaris: Added a 32-bit version of the
wd_utils shared object to the 64-bit
WinDriver distributions.
-
Linux: Updated the WinDriver configuration files to support the SuSE
distribution.
-
USB: Modified and improved the Microchip PIC18F4550 library
(pic18f4550_lib) and
default_firmware_demo sample and moved the
location of the library.
-
USB on Windows: Device enumeration now succeeds also for USB devices with
missing endpoint descriptors.
Fixes
-
DriverWizard USB: Fixed listen to isochronous pipes on low- and full-speed
devices on Windows.
-
PCI: Added Kernel PlugIn support for the WDC PCI configuration space APIs.
-
USB on Linux:
WDU_Transfer() with a time-out of zero now
performs an infinite wait instead of returning immediately.
-
Linux: CPU consumption for non-busy sleep, using
WD_Sleep(),
was reduced to a minimum.
-
Windows: Eliminated error messages that appeared when running Microsoft's
DriverVerifier utility (verifier.exe)
together with WinDriver.
-
.NET (Windows): Added the wdapi_dotnet.cpp
file to the wdapi_dotnet DLL's project
file (wdapi_dotnet.vcproj).
-
.NET (Windows): C# .NET PLX library project file
(plx_lib.csproj) fixed to point to
log.cs instead of
diag_lib.cs.
WDU_Transfer() no longer allows a non-zero buffer size
(dwBufferSize) when the buffer pointer (pBuffer)
is NULL, and vice versa.
-
Windows 98/Me: wdreg16.exe now enables
replacing an older version of WinDriver without first uninstalling the old
windrvr6.sys driver.
Version 7.0.1
(Release Date: August 9, 2005)
New Features
-
.NET (Windows):
-
Added a new .NET managed extensions for C++ WinDriver DLL
(wdapi_dotnet.dll).
-
Added a new PLX .NET C# DLL
(plx_lib_dotnet.dll) and GUI sample
(PLX_Sample).
-
Added a new USB .NET C# DLL
(usb_lib_dotnet.dll).
-
USB: Added sample for the Microchip PIC18F4550 development board.
-
WinDriver USB Device (Windows): Added framework for vendor control
requests in the sample and generated code.
-
Solaris: Added API for performing CPU and I/O caches DMA
synchronization.
-
Kernel PlugIn (PCI/ISA) on Solaris: Added synchronization APIs, which
include spinlocks and interlocked operations, for single and multiple CPU
systems.
Enhancements
-
Windows CE: The generated DriverWizard code now also includes
Platform Builder 5.0 XML project files.
-
Solaris and Windows CE: Modified and improved the samples and generated
DriverWizard code in accordance with the Windows and Linux sample and
generated code, including use of the new
wd_utils DLL/shared object and the
WDC API.
-
Linux and Solaris: Added the wd_utils
makefile to the WinDriver distribution.
-
Windows: Modified and improved the .NET USB C# and Visual Basic samples.
The samples now use the new
wdapi_dotnet.dll and
usb_lib_dotnet.dll DLLs, which replaced
the wdnetlib.dll DLL from v7.0.0 of WinDriver
(see the New Features).
-
PCI/PCMCIA/ISA: The generated DriverWizard C code now defines an
enumeration of all local registers defined in the wizard and includes
functions for reading and writing these custom registers.
-
PLX: Modified the
PLX_DMAStart() library function to enable
repeated continuous use for Scatter/Gather DMA.
-
Improved sample and generated DriverWizard C source code and makefiles to
facilitate code porting across the supported operating systems.
Fixes
-
WinDriver USB Device (Windows): Fixed bulk data toggle synchronization
(originated in v7.0.0).
-
USB on Linux: Fixed high-speed isochronous transfers.
-
USB on Linux 2.4: Fixed interrupt transfer mechanism.
-
USB on Windows: Fixed
WDU_Transfer() to enable writing
read-only data buffers to the device.
-
USB on Windows: Diminish effects of bad firmware by eliminating
system halts and crashes in cases of invalid device descriptors.
-
Windows CE: Enable access to the main thread's memory space from
other threads in the process (including from the interrupt handler).
-
PCI/PCMCIA/ISA: Added a new
WDC_CardCleanupSetup() function
and replaced the pDeviceCleanup parameter of
WDC_xxxDeviceOpen() with a reserved parameter
(originated in v7.0.0).
-
USB on Linux: Fixed support for multiple-interface USB devices.
-
PCI/PCMCIA/ISA: Avoid use of global handles in the generated
DriverWizard code and pci_diag and
pcmcia_diag samples.
-
Windows 2k/XP/Server 2003: Enable "Start Device" mechanism on all
platforms.
- wd_utils: Eliminated previous dependency
on windrvr_hotswap.c APIs (originated in
v7.0.0).
-
USB: Minor fixes to the sample and generated USB code;
main()
now returns a relevant error code in case of a failure.
-
Fixed link errors when attempting to build the sample and generated
DriverWizard C code in C++ mode.
-
Windows 98/Me: Fixed WinDriver registration licenses (originated in v7.0.0).
-
PCI/PCMCIA/ISA: Fixed generated DriverWizard C interrupt code.
Previously the code always used the first register assigned to the
interrupt in the wizard (originated in v7.0.0).
-
USB on Windows: Fixed rare crash that could occur when a device was
unplugged immediately after being plugged-in.
-
USB on Windows CE: Prevent possible situation of inability to access USB
devices if the device was connected to the target platform before Windows
CE was loaded (originated in v6.2.3).
-
USB on Windows: Fixed compatibility issue with the old WinDriver
WD_UsbScanDevice() function, whereby the function returned the
actual interface number when it should have returned
WD_SINGLE_INTERFACE (originated in v7.0.0).
-
USB on Windows: Fixed system halt that previously occurred if the transfer
timed-out before the actual transfer began.
-
Windows CE:
WD_DMALock() previously failed when called for
cards that have not been registered with the PCI bus driver in the registry
(originated in v6.2.3).
-
USB on Windows: DriverWizard previously identified USB devices that have
been registered with WinDriver as not configured to work with WinDriver if the
device was being used when the wizard created the devices list.
-
DriverWizard: Fixed bug whereby if multiple register access commands to the
same register were assigned to the interrupt in the wizard, only the last
command was saved in the *.wdp
DriverWizard project.
-
DriverWizard: Fixed parallel port code generation (originated in v7.0.0).
Version 7.0.0 for Windows
(Release Date: March 21, 2005)
Version 7.0.0 for Linux
(Release Date: April 26, 2005)
New Features
-
WinDriver USB Device (Windows): Added support for development of device
firmware for the Cypress EZ-USB FX2LP CY7C68013A and the Silicon
Laboratories C8051F320 development boards.
-
Added support for accessing the PCI Express extended configuration space.
-
Linux: Added support for x86 64-bit architectures: AMD64 and Intel EM64T
("x86_64") on Linux 2.6.x kernels.
-
Linux PowerPC: Added support for the Linux 2.6.x kernels.
-
WinDriver Card (WDC) Library: New convenience wrapper APIs that
simplify the development for PCI/PCMCIA/CardBus/ISA/ISAPnP/EISA/CompactPCI
and PCI Express devices.
-
Windows: Added .NET USB samples in C# and Visual Basic .NET.
-
PCI/PCMCIA: Added API for performing CPU and I/O caches DMA
synchronization.
-
PCMCIA (Windows): Added API for modifying the settings of the PCMCIA bus
controller.
-
Kernel PlugIn (PCI/ISA/PCMCIA): Added synchronization APIs, which include
spinlocks and interlocked operations, for single and multiple CPU systems.
Enhancements
-
Windows: Improved WinDriver's installation and uninstallation procedures.
-
Use the wd_utils DLL (Windows:
wd_utils.dll; Linux:
libwd_utils.so)
in the sample and generated DriverWizard Linux projects and Windows
Borland C++ Builder projects.
-
Improved the sample and generated PCI/PCMCIA/ISA code (using the new
WDC API):
-
PLX: Added new shared library
(plx_lib) for the enhanced-support PLX
chipsets — 9030, 9050, 9052, 9054, 9056, 9080, 9656 — and
improved the specific samples for these chipsets.
-
New PCMCIA diagnostics sample
(pcmcia_diag).
-
New shared- PCI/PCMCIA/ISA C diagnostics API
(diag_lib,
wdc_diag_lib).
-
New Kernel PlugIn PCI sample (kp_pci)
(replaces the previous kptest Kernel
PlugIn sample).
-
Improved the generated DriverWizard C code.
-
Modified the generic PCI C samples
(pci_diag,
pci_scan,
pci_dump).
-
PCI/ISA/PCMCIA: Added an option to avoid mapping of PCI/ISA/PCMCIA memory
resources to the kernel-mode (map the resources only to the user-mode
virtual address space). This allows registration of large memory ranges
without overburdening the system.
NOTE: By default, WinDriver attempts to map a device's memory resources both
to user mode and to kernel mode (as done in previous versions).
-
Linux PowerPC: For memory transfers, WinDriver's transfer APIs
(
WD_Transfer() / WD_MultiTransfer() / the
WDC read/write APIs) now perform automatic byte-ordering
translations (big/little endian).
Fixes
-
Linux: Fixed and improved the support for the Linux 2.6.x kernels.
-
Linux: Fixed memory leaks.
-
USB (Windows): Fixed crash when
WDU_Transfer() /
WDU_TransferIsoch() was called with the
USB_ISOCH_NOASAP flag (bug since v6.2.3).
-
USB (Windows): Isochronous pipes listen from DriverWizard, or using the
usb_diag sample or generated DriverWizard
code, previously failed for some USB host controllers and on high-speed
devices.
-
USB: The usb_diag sample and generated
DriverWizard
DeviceAttach() function now uses the active
alternate setting of the attached device instead of alternate setting 0
used in previous versions.
-
USB (Linux 2.4.x kernels): Fixed crash for EHCI interrupt transfers with
intervals of less than 8 frames.
Version 6.2.3
(Release Date: November 9, 2004)
Enhancements
-
PCMCIA: Added implementation of writing to PCMCIA attribute space.
Fixes
-
Windows USB: Improved
SET_INTERFACE command mechanism.
-
Windows USB: Improved compliancy with Windows USBD driver enablement
mechanism.
-
Windows USB: Added support for USB device disconnection during the
enumeration stage.
-
HID: Improved read mechanism by allowing read requests with no time
limitation.
-
Windows: Improved compatibility with Microsoft's WHQL tests mechanism.
Version 6.2.2 for Windows CE
(Release Date: August 17, 2004)
New Features
-
Added support for Windows CE 5.0.
-
Added support for USB 2.0.
Enhancements
-
Improved Plug-and-Play support.
-
Samples: All samples completely support Platform Builder.
-
Improved interrupt latency.
-
USB: Significantly improved isochronous handling for USB 1.1 and 2.0.
-
USB: Support permanent registration of USB devices in the registry.
Version 6.2.2
(Release Date: July 26, 2004)
New Features
-
Added support for PowerPC on Linux 2.4.
-
Added enhanced USB support for Silicon Laboratories' C8051F320 USB board.
-
Added support for PCMCIA cards on Windows 2000/XP/Server 2003.
Enhancements
-
Linux: New installation mechanism, which creates a makefile based either on
the user's specific running kernel or on another installed kernel source,
according to the user's specification.
-
Debug: Added an check box to the Debug
Monitor utility (wddebug_gui), allowing
users to check/clear all debug sections in a single click.
-
Debug: Added a Plug-and-Play debug section to the Debug Monitor utility
(wddebug_gui), enabling users to monitor
the PnP section separately.
-
PLX: Added support for soft reset of PLX 9054-compatible boards.
-
PLX: Updated the support for EEPROM access via VPD mechanism in PLX 9030,
9054 ,9056 and 9656 samples.
-
PLX 9054: Added support for
DMA_LARGE_BUFFER in the samples.
-
Wizard (PCI/PCMCIA/ISA): Added display of the offset for each register.
-
USB: Added new
WDU_GetLangIDs() API function, which returns
the supported language IDs and/or the number of supported language IDs of a
device.
-
USB: Added new
WDU_GetStringDesc() API function, which reads
a string descriptor from device by string index.
-
PCI: Added endianess conversion functions, which resolve the
little/big-endian issue when accessing PCI devices using memory mapped
range. These functions allow a platform-independent view of the data.
Fixes
-
Solaris: WinDriver now detects and releases "zombie" processes that hold open
WinDriver handles.
-
Wizard (PCI/PCMCIA/ISA): 64-bit registers are now handled in the wizard
in addition to the code generation.
-
USB: Stabilized USB transfers by eliminating previous crashes.
-
PCI: Fixed a minor backwards compatibility problem.
Version 6.2.1
(Release Date: May 12, 2004)
Enhancements
-
PCI/ISA: Added an API to enable cards cleanup handling upon an
application's termination.
-
Debugging: Simplified usage of console-mode WDDEBUG.
-
DMA: Allow increased contiguous buffer size.
-
Windows: Improved wdreg.exe installation
utility.
Fixes
-
USB: Fixed multi-interface USB device INF generation and
installation/uninstallation from DriverWizard.
-
64-bit platforms: The wizard now correctly displays the I/O resources
of PCI devices.
-
Linux: Previously had problem locking DMA for reading.
-
All Platforms: Improved access to PCI configuration space and reduced
overhead.
-
Windows USB: Resolved previous crash in the case of shortage in memory
resources. WinDriver now exits and sends an error message.
-
Solaris: Fixed crash that occurred when versions of Kernel PlugIn and WinDriver
did not match.
-
Linux: Previously older versions of Linux distribution did not support
WinDriver graphics.
Version 6.2.0
(Release Date: March 16, 2004)
New Features
-
Support for 32-bit and 64-bit Solaris 8-9 on SPARC.
-
Support for 32-bit Solaris 8-9 on x86.
-
Support for 32-bit user applications on 64-bit Solaris kernel.
-
Support for Linux kernel 2.6.
-
Added the option to start developing your driver before your PCI hardware
is available.
-
Added basic API logging capabilities from the wizard.
-
Added enhanced USB support for Texas Instruments' TUSB3410, TUSB3210,
TUSB2136 and TUSB5052 chips (download firmware samples).
Enhancements
-
USB: Significantly improved isochronous handling for USB 1.1 and 2.0.
-
SPARC Solaris DMA: Added support for Scatter/Gather DMA and mapping of contiguous
kernel buffer to user mode on SPARC platforms.
-
x86 Solaris DMA: Added support for Scatter/Gather DMA and Contiguous Buffer DMA on x86
platforms.
-
Windows: Improved power management support.
-
Windows: Improved USB cancellation mechanism.
-
USB: Added examples of standard control transfer requests to the wizard.
-
Windows: Improved *.sys and INF files to
help pass WHQL tests.
-
USB: usb_diag sample and generated code
now have basic support for multiple devices.
-
PLX samples: Sample code with implementation of DMA transfer was added to
p9054_diag.c.
- WDREG/WDREG16 utility: Enables use of the
relative path to the INF file.
-
Code: Kernel PlugIn Wizard generated code now demonstrates direct memory
access when all access registers assigned to the interrupt in the wizard
are memory registers.
-
Code: Improved generated and sample code to prevent errors when compiling
in C++ mode with Borland C++ Builder and reduced warnings.
-
USB: Added new
WD_GetDeviceProperty() API function, which
allows retrieving of specific device properties like
WDU_GetDeviceAddr(), for example (on Windows only).
-
Samples: Added MSDEV .NET (7.0) project files to all WinDriver samples,
including the enhanced support samples.
-
User mode API wrappers provided as DLL for MSDEV .Net environment.
-
DMA: Added new DMA flags to WinDriver API, improving the data consistency.
-
Wizard: Added Cancel License Registration option, which enables
evaluation on a PC on which a registered license was previously used.
Fixes
-
Solaris: Reduced Sun's cc compilation warning and fixed compilation errors.
-
PLX sample EEPROM: The EEPROM was erroneously treated as a regular memory
space.
-
INF: The INF-create dialog in the wizard automatically suggests to create a
multiple interface INF file.
-
Multiple interface USB devices: The wizard now displays both registered and
unregistered interfaces.
- WDREG utility: The
WDREG utility can uninstall/enable/disable
multiple interface devices.
-
Windows Delphi USB: Improved generated and sample code.
-
USB generated/sample C code: Improved generated and sample code.
-
Windows Visual Basic and Delphi generated ISA code: Improved generated and sample
code.
-
Wizard: Minor GUI fixes.
Version 6.0.3
(Release Date: August 11, 2003)
New Features
-
Support for ARM-based platforms on Windows CE.
-
Support for USB remote wakeup feature.
Enhancements
-
USB: Improved bulk transfer rates on Windows XP and
Windows Server 2003.
-
USB: Added device reset and wakeup functions.
Fixes
-
Visual Basic USB sample and generated code: Now handles usage of unsigned values
when the value of vendor and product IDs might exceed 32,767 (since v6.0.0).
-
Visual Basic USB sample and generated code: Fixed the default alternate setting
number in the generated code which was previously set to the selected
interface number (since v6.0.0).
-
Visual Basic USB sample and generated code: Fixed flawed implementation of
ListenToPipe() function and related functions, due to lack of
good support for multi-threading and CreateThread() in VB
(specifically VB 6.0). ThreadStart/Stop() Visual Basic functions are
now replaced with VB_ThreadLoopStart/Stop() DLL functions and
Listen loop runs in the DLL (not in the user thread function).
-
Delphi USB: Previously, in
PrintEndpoints() function in
usb_diag_lib.pas sample, endpoints data
was inaccurate and the application terminated if there were zero endpoints
(since v6.0.0).
-
Delphi USB: Fixed DLL thread functions usage, resolved previous problems
with Listen to Pipe function (since v6.0.0).
-
Linux 2.4: Resolved previous problem, where on some computers there was a
failure in reading from the PCI card's memory (read only 0xffffffff). The
problem is resolved by calling
pci_enable_device() function.
-
Windows CE: Improved implementations of spinlock and events.
-
PLX samples: Resolved previous application error caused by read/write from
local addresses due to miscalculation of
dwMask (since
v6.0.0).
-
VxD drivers: Resolved problem of installation using WDREG on Windows
95/98/Me, and fixed an incorrectly displayed error message (since v6.0.0).
-
wdreg16.exe: Increased stack size in the makefile to fix an
application crash that previously occurred on some Windows Me/98
platforms.
-
WHQL tests: In order to pass WHQL tests, changed the code to avoid
access to unknown buffer if an invalid IOCTL is received.
-
WHQL tests: In order to pass WHQL tests, initialized Plug-and-Play IRP status.
Version 6.0.2
(Release Date: May 22, 2003)
New Features
-
Support for Windows Server 2003.
-
Support for Windows CE.NET 4.2.
-
Windows CE support for MIPS processors.
-
Delphi: support for new USB API, including sample code and wizard code
generation.
-
Support for Linux kernel 2.4.20.
Enhancements
-
Windows: In the Debug Monitor (wddebug_gui
or wddebug) an extra functionality was
added to the Send debug messages to kernel debugger option. When enabled,
WinDriver debug messages will be sent to the kernel debugger during WinDriver
activation in the next boot.
-
Minor code improvements in Visual Basic PCI, ISA and USB code generation.
Fixes
-
Linux kernel 2.4.20: Now fully supported after having experienced
compilation problems.
-
Linux: Resolved installation problems on multi-processor (SMP) systems
(since v6.0.0).
-
Linux: Scatter/Gather DMA: Improved to correctly handle HIGHMEM support.
-
Linux: Resolved previous crash in the case of repeated allocations of small
Contiguous DMA buffers with
WD_DMALock() calls.
-
Linux: Fixed problems related to simultaneous usage of WinDriver v6.0X and
WinDriver v5.2.2 or lower on the same PC (since v6.0.0).
-
Wizard USB projects (*.wdp files):
Disabled Save option. This option is no longer supported beginning with
v6.0.0 (since it has no real significance), but was inadvertently still
enabled in the wizard in v6.0.0-6.0.1 (since v6.0.0).
-
USB generated code: Solved the problem where code generated in v5.2.2 or
lower and rebuilt with v6.0X failed to activate
event_register() (since v6.0.0).
-
Windows: Previously (from v6.0.0), on rare occasions
WD_UsbTransfer() and potentially WD_IntWait()
returned incorrect error status/caused a system crash.
-
Windows: windrvr6.inf no longer demands an
IRQ from Windows, and the memory range from which 1 byte was taken has been
expanded, fixing WinDriver installation failure on some machines (since
v6.0.0).
- WDREG: Previous junk messages and
WDREG crashes have been eliminated (since
v6.0.0).
-
Visual Basic ISA code generation: Resolved previous compilation errors (bug since
v6.0.0).
-
Visual Basic USB sample and code generation: Fixed potential memory leak in
PrintDeviceConfigurations() library function.
-
PLX9656 sample diagnostics application: DMA test fixed (since v6.0.0).
-
Reduced porting problems of applications generated prior to v6.0.0.
-
WINCE .NET: WinDriver's debug messages are sent in all cases to the
kernel debugger when this option is enabled.
-
Windows: Resolved memory leak that occurred when the API function
WDU_transfer() was cancelled or had exited as a result of a
timeout (since v6.0.0).
Version 6.0.1
(Release Date: April 9, 2003)
New Features
- wdreg source code supplied.
-
STMicroelectronics USB HID samples: for USB/Serial bridge (st/rs232u) and
for 92163 USB Evaluation Kit (st/92163).
Enhancements
-
Wizard: The wizard does not freeze when installing an INF file.
-
Wizard: Allow large files to be read in the "File to Pipe" option in the
USB transfer dialog.
-
Visual Basic: Improved VB generated/sample code.
Fixes
-
When updating a driver for a non-plugged device, wdreg previously performed
successfully but returned an error status code.
-
Windows: USB Transfer functions now return to the caller when short USB
bulk / interrupt transfer arrives, instead of waiting for the entire buffer
to be filled.
-
Windows CE: During CE startup, CE tried to load the wrong DLL
(windrvr.dll instead of
windrvr6.dll).
-
Windows 98: Copy newdev.dll to the user's
computer, if it does not exist. (This DLL is required for detecting the
connected USB devices and for installing INF files for these devices.)
-
Linux USB: Interrupt transfer could cause a crash due to incorrect pipe
type detection in the case of transfer failure.
-
Linux USB: Linux occasionally returned incorrect error status.
-
Linux USB: Fixed handling of devices with multiple interfaces.
-
Visual Basic: Fixed Stat2Str() VB implementation (in
wd_utils.cls) for correct handling of
string transfers between C DLL and VB application.
-
Visual Basic USB: Corrected function declarations in
wd_utils.cls.
-
Visual Basic PCI: Generated code: Fixed
WD_License() call by adding
a NULL character to the end of the license string that is sent to the
function, so that it will be interpreted as an ANSI string by the C DLL.
-
USB Delphi code generation is now disabled in DriverWizard (not supported
from v6.0.0).
Version 6.0.0
(Release Date: March 17, 2003)
New Features
-
Added support for USB on Linux.
-
Added support for USB and PCI on WindowsCE.NET.
-
Added code generation for Visual Basic 6.0 (also added a USB VB sample).
-
Added support for Visual Studio .NET project generation.
-
Added user-mode APIs for USB HID devices.
-
Improved APIs for USB on all operating systems.
Enhancements
-
Added return values for all
WD_xxx() functions for improved
error handling.
-
Added support for DMA APIs for Windows CE.
-
QuickLogic files added to the standard distribution. Replaced the old V3
files.
-
Moved function implementation from
include/windrvr_int_thread.h to
src directory.
-
Replaced wd_vb.dll with
wd_utils.dll.
-
Added
pKernelAddr to WD_DMA struct. For
Contiguous Buffer DMA, WD_DMALock() returns the kernel mapping of
the allocated buffer in dma.pKernelAddr.
Fixes
-
Replaced installation/uninstallation method of
windrvr.sys on WDM Windows. As a result
— changed windrvr to
windrvr6 on all operating systems.
windrvr6 is not binary compatible with
windrvr.
-
Fixed power change handling on Windows — enabling automatic resetting
of interfaces on USB devices after recovering from standby state.
-
Fixed wizard and wddebug_GUI icons on
Linux.
-
When failing to register a device — the parallel port sample in
Visual Basic will not spawn infinite message boxes.
-
Fixed Delphi compilation error when range checking turned on.
-
Fixed WINNT crash that occurred after 0x80000000 interrupts on
semaphore_release that nobody waited on.
Version 5.2.2
(Release Date: November 28, 2002)
New Features
-
Added support for Linux kernels compiled with GCC 3.x (e.g., RedHat 8.0).
-
Added
windrvr_isr() hook on VxWorks to allow the user to add
code to an interrupt handler.
-
Added enabling of PCI bus mastering on Linux to solve a problem with
several BIOS that do not support this natively.
Enhancements
-
Improved support for USB composite devices performing control transfers.
-
WinDriver and KernelDriver documentation improved, including restructuring,
many contents fixes and useful additions.
Fixes
- Windows
-
Fixed a bug in the WDREG utility,
which caused to fail on Windows 95.
- Linux
-
Fixed the generated Kernel PlugIn makefile on Linux. Previously in some
cases "make install" would install the wrong files. Also the makefile
now identifies various problems during the installation and
automatically fixes them.
- USB
-
Solved BSOD that occasionally occurred on extraction of USB devices,
while performing isochronous transfer.
-
Solved synchronization problem that sometimes cause BSOD with USB
devices.
- KernelDriver
-
Fixed a bug in KernelDriver's function
KD_OpenWinDriver() in
kd.lib, on Win32 platforms.
Previously only the first call to this function was successful, while
consequent calls would fail.
Version 5.2.1
(Release Date: October 23, 2002)
Enhancements
-
Several transfer commands that acknowledge an interrupt/for interrupt
acknowledgment can now be set in DriverWizard.
-
Improvement of Debug Monitor buffer overflow behavior, so that older
messages are lost rather than new messages.
-
Added
DMA_ALLOW_CACHE option to WD_DMALock(). It
allows the locked memory on Windows NT, 2000 and XP to be cached to the
CPU, thereby achieving a major increase in DMA speed (however it may cause
data corruption).
-
WinDriver can now automatically install an INF file for a device which is not
connected to the computer.
-
KernelDriver can now be loaded prior to loading
WINDRVR.SYS.
Fixes
- General
-
Fixed a bug that caused memory corruption and BSOD on Win2000/XP, when
performing contiguous DMA and calling
WD_DMAUnlock().
-
Fixed BSOD when KernelDriver calls
WD_IntCount() from
high IRQL (usually the function is called from
windrvr_int_thread.h ISR).
-
Fixed BSOD in cases when a LOT of interrupts (2\^31) are generated
but no application/driver is registered to listen to them.
-
Fixed a bug that caused a potential for BSOD on each call to the
Kernel PlugIn (especially on checked build when using Microsoft
Driver Verifier).
-
Fixed a bug that caused Cypress EZ-USB firmware download to fail
(especially if recompiled).
-
Fixed bugs in the support for Visual Basic and Delphi, which caused
compilation errors.
-
Fixed Scatter/Gather DMA handling on Linux, which gave wrong byte count to
first and last pages.
-
Fixed a bug that caused the
XXX_CountDevices() function
in the USB generated code to fail.
-
Fixed a bug in the Kernel PlugIn installation, which caused the
Kernel PlugIn to fail to start after reboot.
Version 5.2.0
(Release Date: September 1, 2002)
New Features
-
Added Plug-and-Play and power management handling, both at the kernel and at the
user level. This allows compliance with Windows Driver Model (WDM) functionality.
-
Added 64-bit data transfer on x86 machines. This feature enables
utilizing new 64bit buses on existing 32bit Windows and Linux operating
systems, thereby getting maximum performance for drivers.
-
DriverWizard now generates Kernel PlugIn code.
-
Added enhanced support for PLX Technology's new product line, the PCI 9656
I/O Accelerator chip. The enhanced support includes special set of API
which implements PLX 9656 access and control, as well as sample
application, which can be used as a skeletal driver.
-
KernelDriver now supports generating drivers using all versions of DDK for
all Windows operating systems, with extended support for Visual C++.
-
Complete WDM support for KernelDriver, supporting the standard Windows Driver Model on
Windows 98/ME/2000/XP.
-
Code generation for user drivers now generates documentation for both
header and body of the functions.
Enhancements
-
Merged wdpnp.sys &
windrvr.sys, resulting in a single driver
file (windrvr.sys) for easier handling and
distribution.
-
Merged evaluation and registered distributions, saving additional
installation once the software is purchased.
-
Added dual processor and SMP support on Linux.
-
Added Scatter/Gather DMA support on Linux 2.4.
-
Added status information on USB operations.
-
Added API for multiple interfaces USB devices.
-
Automatic generation and installation of INF files from DriverWizard on
Windows operating systems, saving the manual steps required before.
-
Added an option to generate code to Borland C++ Builder 6.
-
Added functionality to the generated INF files.
Fixes
- General
-
Various DriverWizard changes, aimed at increasing usability and user
experience.
- Windows
-
Re-implemented USB scanning process to support all USB2.0 HC and
multi-interface devices.
-
Fixed USB file to pipe option, allowing transferring data from file
to USB pipe.
-
Fixed usb_scan utility to identify High-Speed devices.
- Linux
-
Fixed CTRL-Z resulting in phantom interrupt.
- Solaris
-
On Solaris 2.6, Fixed a bug that caused a crash when trying to
open non-existing Kernel PlugIn.
Version 5.0.5b
(Release Date: August 28, 2002)
New Features
-
Added support for Windows 2000 service pack 3.
Version 5.0.5
(Release Date: May 5, 2002)
New Features
-
Added enhanced support for PLX Technology's new product line, the PCI 9056
I/O Accelerator chip. The enhanced support includes special set of API
which implements PLX 9056 access and control, as well as sample
application, which can be used as a skeletal driver.
Enhancements
-
Improved interrupt handling on Windows NT 4.0 running on a computer with
APIC (Advanced Programmable Interrupt Controller) chip, by retrieving PCI
related data from the OS instead of directly from the hardware.
Fixes
- General
-
Fixed a bug in DriverWizard that caused issuance of "The resource is
overlapped with another resource" warning messages on wrong
circumstances.
-
Fixed a bug that, when using a kernel PlugIn, sometimes caused an
interrupt not to be handled by the kernel PlugIn's DPC routine if the
interrupt occurred immediately after it was enabled.
- Windows
-
Fixed a bug that caused BSOD when using the DriverWizard generated INF
file on certain PCI devices (a bug since v5.0.4).
-
Fixed the file KP_95.lib which was missing several functions required
for compiling Kernel PlugIn projects under Windows 95 (a bug since
version 5.0.4).
- Unix
-
Fixed a bug that caused some Unix environment variables to be
overridden by DriverWizard.
Version 5.0.4
(Release Date: January 24, 2002)
New Features
-
Added USB 2.0 support under Windows 2000 and Windows XP.
-
WinDriver Hardware Debugger now sends debug messages to the operating system's kernel
debugger.
-
Added version information to wdpnp.sys that can be retrieved by reading the
file properties.
-
WinDriver User's Guide now includes new, improved, function reference.
Enhancements
-
WinDriver for USB — New API:
WD_UsbResetDeviceEx(), allows
reset of devices that are not in disabled state.
-
WinDriver for USB — Added
USB_SHORT_TRANSFER option to
WD_UsbTransfer(). If set, the function will return
successfully if a short packet (less than maximum packet size) was
transferred, regardless as to whether the data buffer was filled.
-
WinDriver for USB — Added
USB_FULL_TRANSFER option to
WD_UsbTransfer(). If set, the function will return
successfully if all the requested data was transferred.
-
Minimized quantity of warning messages — when compiling code
generated by DriverWizard under warning level 4.
-
The descriptions and remarks embedded in the code generated by the
DriverWizard were improved.
Fixes
- PCI — General
-
Access to EEPROM of PLX 9030, 9054 and IOP480 chipsets was improved.
Now when access to EEPROM of these chipsets fails, WinDriver retries the
entire access process.
-
Interrupt handling by DriverWizard was fixed. A bug since version 5.0
caused DriverWizard to handle interrupts without implementing all the
parameters assigned by the user; this affected level sensitive
interrupt handling and data transfer operation type definition.
-
Execution method of interrupts transfer commands was improved. Now the
interrupt transfer commands are executed only if the application
handling the interrupts exits abnormally. A bug since version 4.4.0
caused interrupts transfer commands to be executed each time the
interrupt was disabled.
-
Fixed a bug that caused WinDriver to issue application assertion under
Windows 2000 checked-build.
-
Fixed
WD_MultiTransfer() to support Delphi.
-
DriverWizard was fixed to disable generation of
XXX_AccessRanges(hXXX) functions when the relevant PCI
device has no I/O or memory resources at all. This bug caused
compilation errors when trying to compile generated code for devices
with no I/O or memory resources.
- Windows NT 4.0 — PCI
-
Fixed the support for interrupt handling on dual CPU platforms.
Interrupt line and device resources information is now retrieved from
the operating system (instead of directly from the hardware).
- Windows 9x — PCI
-
Set Auto Masking for non-sharable interrupts only. A bug since v4.4.2
could have caused
WD_IntDisable(), when using sharable
interrupts, to disable other interrupts as well.
- Linux — General
-
The operation of the function
WD_DMALock() for contiguous
DMA under Linux was fixed. The bug caused the function to reserve one
extra page (if the allocation was page aligned). This resulted in
kernel panic inside kfree() (which was observed when the
following sequence was performed: lock, lock, free, free).
-
Modified user makefiles for compilation under RedHat Linux
7.0 and above.
- Windows — General
-
Fixed a dependency problem between
windrvr.sys and
wdpnp.sys. A bug since version 5.0.3
caused windrvr to return error code 37
(
STATUS_INTERNAL_ERROR) if
wdpnp.sys was loaded before
windrvr.sys/vxd. Now, the resource
management is handled by wdpnp.sys
instead of windrvr.sys/vxd and if
windrvr.sys/vxd is loaded after
wdpnp.sys, it will initiate the
transfer of the card resources instead of
wdpnp.sys.
Moreover, now wdpnp.sys does not
assume that windrvr.sys is loaded and
the two files open a communication path between them only to perform
short operations, and then close it. This allows eliminating the
dependency between the files and results in an improved stability and
robustness.
-
Fixed the method wdpnp.sys retrieves
the bus number of PCI devices. It now retrieves the bus number by
directly inquiring the PCI devices, instead of inquiring the Windows
operating system, since the operating system always returns 0.
-
Fixed IDE to invoke combo box behavior on Windows platforms. The bug
caused the default IDE to invoke to be "none". Now IDE to invoke is
with accordance to the IDE chosen by the user to generate project
makefiles for; the default IDE to invoke is MS Visual C++ 6.0.
- USB
-
The "send to pipe" operation in DriverWizard was fixed to allow input
of long data strings (i.e., more than 1024 chars). The bug caused
DriverWizard to issue application error when long data strings were
sent.
-
Timeout expiration was fixed to avoid BSOD if the USB device is no
longer connected.
-
WinDriver now uses the operating system's DeviceAddress as a USB uniqueId
instead of obtaining the Pointer to Device Object (PDO) from the
operating system. Now WinDriver obtains the PDO only for the purpose of
communicating with the USB device at the
WD_GetConfiguration() and WD_DeviceRegister()
stages. The reason is that obtaining the PDO is an intrusive operation,
which could interfere with the operation of other devices drivers.
-
For Isochronous data transfers, now WinDriver sends the last packet in a
separate transaction, instead of the same transaction. The bug caused,
in certain circumstances, the operating system USBD to send the last
packet twice.
- KernelDriver
-
DriverWizard was fixed to allow the Debug Monitor GUI to run under
Linux.
-
Fixed DriverWizard so that it will generate code with an IOCTL to
perform
WD_License().
Version 5.0.3
(Release Date: September 12, 2001)
New Features
-
WinDriver and KernelDriver support Windows XP(RC1).
-
WinDriver supports Windows CE 3.0.
-
WinDriver and KernelDriver support Linux kernel 2.4.x.
Enhancements
-
The Debug Monitor (wddebug_gui),
previously available in the Windows versions only, is now available under
the Linux and Solaris versions as well.
-
New API —
WD_DebugAdd() — Enables sending debug
messages to the debug log which allows printing them.
-
Minor: The evaluation version time limitation, requiring reboot to continue
working under Linux, Solaris, VxWorks and Windows CE, was extended to 1
hour instead of 30 minutes.
-
Minor: The Unique ID of USB devices is now a pointer to a device object (as
received from Windows 98/2000/XP(RC1)).
-
Minor: New design of Quick Start Info window in DriverWizard.
Fixes
- General
-
(Since version 5.0.0). Level sensitive Interrupt acknowledgment via
DriverWizard. Previously, trying to listen to level sensitive
interrupts might have caused hangs.
-
PLX9030 library — modified the interrupt acknowledge register
(INTSCR). Previously this register was accessed as a 32bit register,
instead of a 16bit.
- Windows 2000
-
Interrupt handling on dual CPU. WinDriver now implements a PnP WDM
function to retrieve interrupt values.
-
Removed the pop up message "Unsafe removal of device" that popped up on
device removal.
- Linux and Solaris
-
"Memory leak" in pthreads usage. Previously, opened threads were not
closed properly. May have prevented opening new threads.
- Linux
-
(Since version 5.0.0). Modified the Kernel PlugIn function,
funcIntAtDpc(), to be executed in "bottom half" instead of
"top half".
- VxWorks
-
Print messages from threads, created by
InterruptThreadEnable(), now appear a in the calling
shell, instead of the device's terminal.
WD_Sleep() with SLEEP_NON_BUSY option did not
work for a time shorter than 1 second.
Version 5.0.2
(Release Date: June 25, 2001)
-
Enhancement: The Wizard now checks the validity of the name chosen for the
generated INF/KDF file.
-
Enhancement: A warning is issued when trying to create additional
interrupts/memory/I/O while overlapping resources with existing ones.
-
Enhancement: The descriptions in the PCI vendor ID and device ID list were
updated with recent details.
-
Enhancement: The USB read/write dialog box now has an option to "add pipe
to file" and "save input".
-
Enhancement: All read/write dialog boxes have a "close" button.
DriverWizard
-
Fix: The license string dialog box no longer yields "Invalid License" when
entering license strings that are over 60 bytes in size.
-
Fix: Allow read or write operation according to what was defined for the
resource.
-
Fix: Added the missing filter in wddebug messages that checks debug levels
and sections.
-
Fix: Compilation fix for Delphi generated code for
xxx_RegisterWinDriver().
-
Fix: When saving a project, the wizard no longer sets the new register
attributes back to their default values, after closing the project.
-
Several other small bug fixes.
-
Known bug: When setting an interrupt on a defined register with certain
offset, the data from the interrupt gets written into offset 0 in all times
and the system hangs.
WinDriver
-
Fix: Allow only one application to register a USB device.
-
Fix: Closing USB applications that failed with transfers no longer cause a
blue screen that says "PROCESS_HAS_LOCKED_PAGES".
Documentation
-
Fix: Minor errors in various places.
-
Fix: Added the documentation about the function
WD_UsbResetDevice() which was missing from the version 5.0.0
manual.
Version 5.0.1
(Release Date: May 8, 2001)
-
New feature: Added a new remote pci_dump
(rpci_dump) sample.
-
Enhancement: Web versions are full featured, but include less
documentation formats. The KernelDriver web version also does not
include the source code for the provided classes and the compiled debug
library.
-
Enhancement: Several minor DriverWizard enhancements.
Documentation
-
New feature: Enabled .hlp files in WinDriver
and KernelDriver.
-
New feature: Added remote driver development procedure to the manuals.
-
Enhancement: Improved the section of Scatter Gather DMA for buffers larger
than 1MB in manual.
DriverWizard
-
Fix: Several minor DriverWizard bug fixes.
-
Fix: The PCI INF file generated by DriverWizard now copies
wdpnp.sys to the correct location.
WinDriver
-
Fix: In WinDriver for USB code generation for registered users is fixed to
call the WinDriver registration before attempting to scan for USB devices.
Previously, the code failed at
Usb_scan().
-
Fix: In WinDriver for USB when writing to a USB pipe eliminated DriverWizard
writing of ASCII data instead of HEX data.
-
Fix: On Windows Net.lib now includes all
functions that are needed for the Remote Access feature.
-
Fix: On Solaris (SPARC) corrected byte ordering when reading from a PCI
card's memory space.
-
Fix: The compilation for Delphi generated code for USB is fixed, after the
generated code did not compile due to declaration of
fRead as
BOOLEAN instead of DWORD.
Version 5.0.0
(Release Date: April 12, 2001)
-
New feature: Added a Graphical User Interface (GUI) to WinDriver for Linux and
WinDriver for Solaris.
-
New feature: A Remote Access feature was incorporated into DriverWizard.
Remote Target is currently supported on Windows NT/2000, Linux and Solaris.
Remote Host supported on NT/2000/9x/ME/CE, VxWorks, Solaris and Linux.
-
New feature: The evaluation timeout per session on
Linux/Solaris/VxWorks/WinCE was expanded to 30 minutes.
-
New feature: The electronic documentation (PDF) now has thumbnails,
bookmarks, and cross-reference hyperlinks in the references sections.
HLP (WinHelp) files have cross reference hyperlinks.
DriverWizard
-
Fix: Several fixes in files saving process and in reading from the
registry.
-
Fix: The INF data generated by DriverWizard under Windows 2000 now complies
with MS recommendations for Windows 2000.
-
Enhancement: Wizard for Windows allows choosing between WinDriver and
KernelDriver help files when invoked.
WinDriver
-
Fix: In DriverBuilder (for VxWorks) fixed resource allocation for
MPC860/MBX860 and PPC750/MCP750.
-
Fix: In Solaris (SPARC & x86) fixed crash on
WD_CardRegister().
KernelDriver
-
Fix: KernelDriver USB generates C and C++ SYS files for Windows 2000.
Version 4.3.3
(Release Date: November 8, 2000)
-
New feature: On WINNT enabled access to additional PCI devices that are not
accessible by Windows.
-
New feature: Added support to Windows 2000 service pack 1. Previous
versions run under Windows 2000 service pack 1, crash the system at boot
time.
-
New feature: On Windows2000 added the capability to generate Windows 2000
INF file for PCI devices. INF file and PnP service is required for PCI
cards on Windows2000.
-
New feature: In WinDriver for Solaris(SPARC), added support for Ultra 220,
Ultra 450, CP1500 and CP1400.
-
New feature: In WinDriver for Solaris, enabled abnormal application
termination.
WinDriver and KernelDriver Fixes
-
Fix: In WinDriver and KernelDriver, fixed the crash that occurred when
WD_DMAUnlock() was called from Kernel PlugIn and KernelDriver.
-
Fix: In WinDriver USB,
WD_USB_MAX_DEVICE_NUMBER changed from 20
to 127. This requires programs to be recompiled.
WinDriver Windows Fixes
-
Fix: On Windows eliminated crashes that resulted from the Delphi code for
PCI interrupts that was generated by the wizard.
-
Fix: On Windows2000 corrected computation of interrupt slot number.
Fixed Interrupt related bugs that caused system hang.
-
Fix: On Windows2000 fixed crashes that occurred when USB user write buffer
is declared as const void * in user-mode code.
WinDriver Linux Fixes
-
Fix: In WinDriver for Linux, fixed Kernel PlugIn for registered version.
-
Fix: In WinDriver for Linux, fixed compilation warning about undeclared
function int close(int).
-
Fix: In WinDriver for Linux, removed extra license check which broke the
registered version of Kernel PlugIn.
WinDriver Solaris Fixes
-
Fix: In WinDriver for Solaris, fixed memory leak in abnormal application
termination.
-
Fix: In WinDriver for Solaris, fixed crash on
WD_KernelPlugInOpen().
-
Fix: In WinDriver for Solaris(SPARC), shortened scan of PCI bus from 40
seconds to 1-2 seconds.
-
Fix: In WinDriver for Solaris(SPARC), fixed PCI interrupt handling for shared
PCI interrupts and cards behind PCI bridges.
Version 4.3.2
(Release Date: March 26, 2000)
-
Name change: The company name has been changed from KRFTech to Jungo.
-
New feature: supports USB devices with multiple interfaces.
-
Major improvement in WinDriver for Solaris: The PCI scan is now performed
faster, and we eliminated abnormally long scan times on AXi boards.
-
Improvement in WinDriver USB: Isoch transfer auto adjust are better capable of
overcoming failures in transfers.
-
Improvement in WinDriver USB: Supports multiple interfaces.
-
Fix: On Windows 95/98, non-sharable edge-triggered interrupts were in some
cases received only once.
-
Fix: On WINNT/98 (SYS) and Solaris, resources were not released on abnormal
termination.
-
Fix: WinDriver USB would display a message "duplicate object name" after
installation.
-
Fix: In WinDriver USB, A Device can now be stopped.
-
Fix: In WinDriver USB, No more report error in short USB transfers and
transfer of size 0.
-
Fix: In WinDriver for Linux, Installation fixes on Linux 2.0.kernel.
-
Fix: In Wizard, Saving INF file without an extension can now be done
without causing problems.
-
Fix: In WinDriver for Solaris, Interrupts are now acknowledged by default
which prevents sys log overflow and lock ups.
-
Fix: In KernelDriver, WINNT samples and the generated code can now be
compiled currently using the build utility.
Version 4.3.1
(Release Date: February 24, 2000)
-
USB support: Improved performance of bulk transfer and isochronous
transfer.
-
Major improvements in handling interrupts in Visual Basic.
-
Interrupt handling sample in Visual Basic is now available.
-
New graphical sample in Visual Basic for accessing the parallel port.
-
VxD files generated with KernelDriver or with 'WinDriver Kernel PlugIn' now
communicate with windrvr.sys on Windows
98.
-
Fix: interrupt handling on Windows 98, Windows NT/2000 (bug only in
v4.3.0).
-
Fix:
WD_DMAUnlock() on Windows 98, Windows NT/2000 (bug only
in v4.3.0).
-
Fix: error message when installing USB INF file on Windows 2000.
Version 4.3.0
(Release Date: January 17, 2000)
-
Windows 2000 support.
-
USB support in WinDriver (sold separately).
-
Wizard enables programmers to detect their USB devices and select the
desired configuration.
-
Wizard enables USB hardware testing (read, write and listen to pipes).
-
Wizard generates USB driver source code in C, C++ or Delphi.
-
Wizard generates .INF files for Windows 98/2000.
-
WinDriver's Kernel PlugIn supports all WinDriver USB APIs.
-
WinDriver's Kernel PlugIn supports also Solaris and Linux, assures
optimal performance for all supported operating systems and full code
compatibility among all supported operating systems.
-
In version 4.3 WinDriver and KernelDriver are integrated into one driver
development suite.
-
KernelDriver now also supports Windows 95/98 (VxD Drivers).
-
KernelDriver now also supports Linux.
-
USB support in KernelDriver for Windows 2000.
-
KernelDriver API is available now also in C in KernelDriver for
Windows NT/2000 (previously only in C++).
-
GUI enhancements: Registers can now be defined as auto-read.
-
Wizard includes pre-defined resources for parallel port which enable quick
access to the port.
-
Fixed:
WD_DMAUnlock() with KERNEL_BUFFER_ALLOC on Windows NT
and Linux.
WD_IntWait(): Can now terminate application waiting on
WD_IntWait() without locking machine.
Version 4.2.0
(Release Date: November 15, 1999)
-
Wizard now also generates driver code in Delphi.
-
Enhanced support for Altera PCI cores.
-
Enhanced support for PLX IOP480.
-
Automatic generation of INF file for windows 95/98.
-
Wizard generates makefiles simultaneously for all operating systems and
IDEs chosen by the user.
-
All samples include makefiles for all supported IDEs.
-
Debug Monitor now integrated into Wizard environment.
-
GUI enhancements in the Driver Wizard.
-
The default when adding new ISA interrupts in Wizard is now sharable
interrupts.
-
Contiguous Buffer DMA also for Linux 2.2 (only 2.0 supported previously).
-
Fixed Scatter/Gather DMA on Windows 98.
-
Unix make files: Fixed DOS slashes.
Version 4.1.4
(Release Date: July 28, 1999)
-
ISA PnP support.
-
Wizard can generate Kernel Code, supported by KernelDriver.
-
Wizard generates Borland CBuilder Ver 3 and Ver 4 make files.
-
PLX 9052 support.
-
PLX 9054 and 9080 added DMA function enabling non-busy wait for DMA to
complete.
-
Added
WD_VB_GetAddress() for VB to get an address of a
variable.
-
Overcome Windows NT inability to map addresses at the end of the physical
memory (???-0xffffffff).
-
Fixed 9054 and 9080 EEPROM access and corrected register names.
WD_VERSION structure correction in Delphi.
-
Fixed interrupt handling in Windows CE.
-
Fixed
WD_PciGetCardInfo() on Windows 98.
-
Fixed Wizard Halting after interrupt is disabled.
Version 4.1.0–4.1.2
(Release Date: February 2, 1999)
-
New support for Linux, Windows CE and Alpha NT.
-
Graphical KernelTracer introduced.
-
Robust support for Delphi and VB (Visual Basic). More Delphi and VB samples.
-
Support for Marvell GT64 chip sets.
-
v4.1 Includes The Enhanced Driver Wizard.
-
Automatic Vendor and Device detection.
-
Automatic handling and code generation for Level sensitive interrupts.
-
Wizard allows multiple concurrent register and memory dialogs.
-
Improved GUI.
Version 4.0
(Release Date: December 12, 1998)
-
Windows 98 support.
-
WinDriver Kernel PlugIn — allows running parts of the driver code from
the kernel mode.
-
Sleep function — For accessing slow hardware.
-
ISA Plug-and-Play support.
-
Debugging monitor — Allows tracking of errors, warnings and trace
messages from the WinDriver's kernel module.
-
Dynamic driver loader — WinDriver enables the driver created to be
loaded and unloaded without rebooting the machine.
-
Enhanced source code generation for interrupts — DriverWizard creates
full interrupt source code.
-
PLX 9050 library enhancements — EEPROM read/write support functions
and Enhanced interrupt handling.
Version 3.0.3
(Release Date: May 31, 1998)
-
Enhanced support for Multi-CPU Multi-PCI bus.
-
Corrected the interrupt count value returned by
WD_IntWait().
Version 3.0.2
(Release Date: April 24, 1998)
-
Minor improvements in DriverWizard.
-
Supports Windows NT checked build.
Version 3.0.1
(Release Date: October 11, 1997)
Version 3.0.0
(Release Date: September 28, 1997)
-
Added DriverWizard to package.
-
DriverWizard enables the programmer to 'talk' and 'listen' to his card via
a windows user-interface.
DriverWizard then creates the source code for the driver.
-
DMA option
DMA_LARGE_BUFFER added for locking regions larger
than 1MB.
-
Removed limitation of 20 concurrent DMA buffers in use.
Version 2.1.2
(Release Date: March 21, 1997)
-
For memory mapped cards: you can now directly access the memory region,
without calling
WD_Transfer(). The pointer to the memory
region is returned in dwUserDirectAddr returned by
WD_CardRegister().
-
DMA transfers: DMA contiguous buffer allocation by WinDriver is available by
setting
dwOptions = DMA_KERNEL_BUFFER_ALLOC, when calling
WD_DMALock(). the linear address of the buffer allocated will
be returned in pUserAddr, and the physical address in
Page[0]. the buffer is available until calling
WD_DMAUnlock().
Version 2.1.1
(Release Date: March 11, 1997)
-
For PCI cards: Structure used for calls to
WD_PciScanCards()
was changed. Use pciScan.searchId.dwVendorId and
pciScan.searchId.VendorId and the same for
dwDeviceId.
Version 2.1.0
(Release Date: February 20, 1997)
-
For memory mapped cards, changed item
dwUserAddr to
dwTransAddr.
-
Use
dwTransAddr when calling WD_Transfer().
Added dwUserDirectAddr for direct memory transfers without
calling WD_Transfer().
dwUserDirectAddr NOT YET IMPLEMENTED.