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 Power PC 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.10).
USB (Linux): A massive load of USB transfer requests on Linux would,
on occasion, result in an incorrect transfer timeout error (issue since
v9.00).
USB (Windows): Fixed release of USB devices detached during standby
mode on Windows (issue since v9.10).
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.01).
ISA interrupts: Restored support for ISA interrupts (issue since
v9.10).
Linux: Resolved WinDriver 64-bit Linux installation crash (issue
since v9.10).
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.10).
Version 9.10 (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.01).
USB (Linux): Fixed problems with WDU_Transfer() write (OUT)
transfers using large data buffers on Linux (issue since v9.01).
USB (Windows): Control requests of type 'class' with recepient
'other' were previously transferred as vendor requests.
Linux: Fixed installation of renamed WinDriver kernel modules using
the wdreg script (issue since v9.00).
Linux: Fixed WinDriver configuration issues with the openSUSE 10.2
Linux distribution.
Linux: Fixed WinDriver configuration issues with the UBUNTU 7.10
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.00).
DMA: Fixed WD_DMALock() 64-bit addresses handling on 32-bit
Windows and Linux platforms (issue since v8.00).
DMA (Linux): Fixed memory leak when locking contiguous DMA buffers on
Linux platforms (issue since v8.10).
Kernel PlugIn (Linux): Resolved Kernel PlugIn memory allocation
issues on some embedded Linux 2.6 distributions (issue since v7.00)
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.00).
PCI (Windows and Windows CE): Added
WDC_PciScanDevicesByTopology() to the WinDriver API DLL
(wdapi<version>.dll) exports (issue since v8.00).
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.01 (Release Date - June 12, 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.00).
DriverWizard: Added support for using DriverWizard with non-English
Windows installations.
DriverWizard: Improved the support for keyboard commands (issue
since v9.00).
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.
Windows 98: Fixed the driver installation on Windows 98 platforms (issue since v9.00).
Windows: Fixed compilation of projects containing the UNICODE
preprocessor definition (issue since v9.00).
PCI/PCMCIA/ISA: Fixed compilation of generated code with no transfer
commands (issue since v9.00).
DriverWizard PCI/PCMCIA/ISA: Fixed DriverWizard crash when generating
code for devices with no interrupts (issue since v9.00).
Linux PCI: Fixed Scatter/Gather DMA lock for buffers that are not
page aligned (issue since v6.20).
PCI/PCMCIA/ISA: WDC_Version() can now be called before calling
WDC_DriverOpen() (issue since v7.00).
USB Streaming API: Fixed streaming API cleanup in the case of
abnormal application termination (issue since v9.00).
USB Streaming API: Fixed zero-length transfer crash (issue since
v9.00).
DriverWizard USB: Previously write to pipe would occasionally result
in modification of the input data (issue since v9.00).
DriverWizard USB: Fixed INF generation for multiple-interface devices
(issue since v9.00).
PLX: Fixed the local base address used for master devices in the PLX
library (issue since v7.00).
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.00).
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.00).
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.10).
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.10).
DriverWizard PCI/ISA: Added support for opening legacy DriverWizard
projects created with earlier versions of WinDriver (issue since v9.00).
Windows Mobile 5: Fixed the DriverWizard project files code
generation (issue since v8.01).
.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.00).
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.00).
Version 9.00 (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.00 and Windows
Mobile 6.0.
Linux: Added support for the latest Linux kernels, including 2.6.18, 2.6.19.
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.11 (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).
Enhancement:
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 un-installation.
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.00).
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.10 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.
Enhancement:
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.00).
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.00).
Obsolete Features:
Stopped support for Windows NT 4.0.
Linux: Stopped support for the Intel Itanium and Itanium 2 architectures (IA64).
Version 8.02 (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.
Enhancement:
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.00).
.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 installation script 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.00).
PCMCIA (Windows): Fixed behavior of WDC_PcmciaSetWindow()
(issue since v7.00).
.NET (Windows): Fixed PCI events handling under .NET Framework 2.0
(issue since v8.00).
.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.00).
.NET (Windows): PCI C# sample -- fixed the behavior of
PCI_Device.Open() in the event of an error (issue since
v8.00).
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).
USB on Windows CE: Added support for WDU_ResetDevice()
on Windows CE 5.0.
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.
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.02).
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.
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.
Version 7.00 for Windows (Release Date - March 21, 2005)
Version 7.00 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 development board.
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 un-installation 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_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.23).
USB (Windows): Isochronous pipes listen from the 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.
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 All sections 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.
Added the option to start developing your driver before your PCI hardware is available
Added the option to log all WinDriver API calls using the DriverWizard
Added enhanced USB support for Texas Instruments' TUSB3410, TUSB3210,
TUSB2136 and TUSB5052 chips (download firmware samples)
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
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 cancelation 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 has 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.
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.00).
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.00).
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.00).
Delphi USB: Fixed DLL thread functions usage, resolved previous problems with Listen
to Pipe function (since v6.00).
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.00).
VxD drivers: Resolved problem of installation using WDREG on Windows 98/Me, and
fixed an incorrectly displayed error message (since v6.00).
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.
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:
When updating a driver for a non-plugged device, wdreg previously performed successfully but returned an error status code.
Linux kernel 2.4.20: Now fully supported after having experienced compilation problems.
Linux: Resolved installation problems on multi-processor (SMP) systems.
Linux: Improved Scatter/Gather DMA support to correctly handle HIGHMEM.
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.22 or lower on the same PC. (since v6.00).
Wizard USB projects (*.wdp files): Disabled Save option. This option is no longer supported beginning with v6.00 (since it has no real significance), but was inadvertently still enabled in the wizard in v6.00-6.01 (since v6.00).
USB generated code: Solved the problem where code generated in v5.22 or lower and rebuilt with v6.0X failed to activate event_register() (since v6.00).
Windows: Previously (from v6.00), 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.00).
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.00).
WDREG: Previous junk messages and WDREG crashes have been eliminated (since v6.00).
Visual Basic ISA code generation: Resolved previous compilation errors (bug since v6.00).
Visual Basic USB sample and code generation: Fixed potential memory leak in PrintDeviceConfigurations() library function.
PLX9656 sample diagnostics application: DMA test fixed (since v6.00).
Reduced porting problems of applications generated prior to v6.00.
WINCE .NET: WinDriver's debug messages are sent in all cases to the kernel debugger when this option is enabled.
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.
Added log option to the wdreg installation utility.
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 user's computer if 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 the DriverWizard (not supported from v6.00).
WDU_SetInterface returns specific error status code (previously returned
WD_SYSTEM_INTERNAL_ERROR for every error).
Version 6.00 Installation Bug: Installation failed if the file path
contained blank spaces (e.g. Installing WinDriver under the "Program
Files" directory).
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 om 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 Windows NT/2000/XP crash that occurred after 0x80000000 interrupts on semaphore_release that nobody waited on
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 bioses 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 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.
Several transfer commands that acknowledge an interrupt/for interrupt acknowledgement can now be set in the 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 re-compiled).
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.
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 busses 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.
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.04).
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.04).
Unix:
Fixed a bug that caused some Unix environment variables to be overridden by the DriverWizard.
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 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.40 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.
The 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.42 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.03
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 the 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 the DriverWizard so that it will generate code with an IOCTL to perform
WD_License().
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.00). 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.00). 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 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.
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/io
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.00 manual.
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.
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.
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.