WinDriver
Version History
This document describes the changes in the software since version 2.10.
Version 7.02 (Release Date - November 1
st 2005)
- WinDriver USB Device (Firmware Development Kit): Added support for the
Microchip PIC18F4550 development board.
« B26271 (Chen) »
- PCI interrupts: Added option to define an interrupt mask in the
kernel-mode interrupt transfer commands.
« B25654 (Itay) »
- 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).
« B25369 (Eyal) »
- Linux: Added backward support for 2.4x Linux kernels on x86 64-bit
platforms.
« B25519 (Chen) »
- 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.
« B25090 (Chen) »
- .NET (Windows): Improved the PLX C# library
(plx_lib_dotnet) and sample diagnostics application
(PLX_Sample).
« B20714; B25325; B25366 (Nili). (Decided not to explicitly
document the DMA address bug fix - see description added in B25325). »
- PLX: Modified the interrupt APIs in the PLX libraries
(plx_lib - C ; plx_lib_dotnet
- C#) to use the new interrupt mask feature.
« B25654 (Itay) »
- DriverWizard (Windows): Added automatic association of
*.wdp files with DriverWizard.
« B27030 (Jonathan) ;
It was decided not to document the option to run wdwizard from the
command line. »
- PCI/PCMCIA/ISA: Prevent locking of non-shared overlapping memory/IO
regions on a card.
« B22315 (Eyal) »
- 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.
« B26055 (Alexey) »
- 64-bit Linux and Solaris: Added a 32-bit version of the
wd_utils shared object to the 64-bit WinDriver
distributions.
« B25512 (Chen) »
- Linux: Updated the WinDriver configuration files to support the SuSE
distribution.
« B26142 (Chen) »
- USB: Modified and improved the Microchip PIC18F4550 library
(pic18f4550_lib) and
default_firmware_demo sample and moved the location
of the library.
« B25369 (Eyal) »
- USB on Windows: Device enumeration now succeeds also for USB devices
with missing endpoint descriptors.
« B25602 (Itay) »
- DriverWizard USB: Fixed listen to isochronous pipes on low- and
full-speed devices on Windows.
« B26476 (Chen) »
- PCI: Added Kernel PlugIn support for the WDC PCI configuration space
APIs.
« B27228 (Nili) »
- USB on Linux: WDU_Transfer() with a time-out of zero now
performs an infinite wait instead of returning immediately.
« B25336 (Chen) »
- Linux: CPU consumption for non-busy sleep, using WD_Sleep(),
was reduced to a minimum.
« B26080; Itay »
- Windows: Eliminated error messages that appeared when running
Microsoft's DriverVerifier utility (verifier.exe)
together with WinDriver.
« B22326 (Itay) »
- .NET (Windows): Added the wdapi_dotnet.cpp file to
the wdapi_dotnet DLL's project file
(wdapi_dotnet.vcproj).
« B24637 (Nili); (Issue since v7.01; creates problem if the
user modifies the wdapi_dotnet DLL). »
- .NET (Windows): C# .NET PLX library project file
(plx_lib.csproj) fixed to point to
log.cs instead of diag_lib.cs.
« B25267 (Nili) »
- WDU_Transfer() no longer allows a non-zero buffer size
(dwBufferSize) when the buffer pointer (pBuffer) is NULL,
and vice versa.
« B27023 (Eyal); Note: It's a WinCE bug since a pBuffer <->
size mismatch in CE created problems that did not occur on other OSs,
but the change in WDU_Transfer() was made for all OSs. »
- Windows 98/Me: wdreg16.exe now enables replacing
an older version of WinDriver without first uninstalling the old
windrvr6.sys driver.
« B27043 (Eyal) »
Version 7.01 (Release Date - August 9
th 2005)
- .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).
« B20714 (PLX sample) and others (?) (Nili) »
- USB: Added sample for the Microchip PIC18F4550 development board.
« B24751 (Eyal) »
- WinDriver USB Device (Windows): Added framework for vendor control
requests in the sample and generated code.
« B24504 (Chen) »
- Solaris: Added API for performing CPU and I/O caches DMA
synchronization.
« The only open bug for this issue with an external comment
refers to Linux - B22093. However, the change is also relevant for
Windows (reflected in the v7.00 release notes) and Solaris. Should
also have been implemented for WinCE but currently is not -> a
relevant bug will be opened. »
- Kernel PlugIn (PCI/ISA) on Solaris: Added synchronization APIs, which
include spinlocks and interlocked operations, for single and multiple
CPU systems.
« BB22474 is for the wd_linux distribution, however the bug is
also relevant for Windows and Solaris (WinCE -> no KP ...). This fix
was documented in the v7.00 Windows/Linux. »
- Windows CE: The generated DriverWizard code now also includes
Platform Builder 5.0 XML project files.
« B21879 (Itay) »
- 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.
« wd_utils use from samples: B24790/R23568 (Windows CE)
(Alexey; Itay) »
- Linux and Solaris: Added the wd_utils makefile to
the WinDriver distribution.
« B24538 »
- 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.00 of WinDriver (see the New
Features).
« B24696 (and others?) ; B22688 (R21141) (Nili) »
- 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.
« B24606 (Chen) »
- PLX: Modified the PLX_DMAStart() library function to enable
repeated continuous use for Scatter/Gather DMA.
« B22927 (Alexey)
Q: Should this item be moved from the Enhancements to the Bug Fixes? »
- Improved sample and generated DriverWizard C source code and
makefiles to facilitate code porting across the supported operating
systems.
« B24477 (Alexey) »
- WinDriver USB Device (Windows): Fixed bulk data toggle
synchronization (originated in v7.00).
« B24061 (Chen) »
- USB on Linux: Fixed high-speed isochronous transfers.
« B24914 (Chen);
The bug was actually fixed only for Linux 2.6 kernels. For Linux 2.4
kernels we found that there is a bug in Linux. Decided not to refer
specifically to the Linux 2.6 kernel in the release item. »
- USB on Linux 2.4: Fixed interrupt transfer mechanism.
« B22102 (Chen) »
- USB on Windows: Fixed WDU_Transfer() to enable writing
read-only data buffers to the device.
« B24188 (Nili)
Q. to Alexey: As I understood, this fix was made only for Windows -> is
it possible that we have a similar problem that should be resolved on
other OSs (WinCE/Linux)? »
- USB on Windows: Diminish effects of bad firmware by eliminating
system halts and crashes in cases of invalid device descriptors.
« B24587 (Itay; Nili) »
- Windows CE: Enable access to the main thread's memory space from
other threads in the process (including from the interrupt handler).
« B22120 (R20342) (Itay) »
- PCI/PCMCIA/ISA: Added a new WDC_CardCleanupSetup() function
and replaced the pDeviceCleanup parameter of
WDC_xxxDeviceOpen() with a reserved parameter (originated
in v7.00).
« B23001 (Alexey) »
- USB on Linux: Fixed support for multiple-interface USB devices.
« B24977 / R23720 (Chen) »
- PCI/PCMCIA/ISA: Avoid use of global handles in the generated
DriverWizard code and pci_diag and
pcmcia_diag samples.
« B22164 (Alexey); (Bug ended on 13/04/05 => this fix was
already part of WD v7.00 for Linux (but not for Windows)). »
- Windows 2k/XP/Server 2003: Enable ''Start Device'' mechanism on all
platforms.
« B23610 (Alexey); (Bug refers to WinXP and DELL laptops but
according to Alexey it was later discovered that may occur on other
systems/platforms as well). »
- wd_utils: Eliminated previous dependency on
windrvr_hotswap.c APIs (originated in v7.00).
« B24290 (Alexey) »
- USB: Minor fixes to the sample and generated USB code; main()
now returns a relevant error code in case of a failure.
« B24770 (Alexey) »
- Fixed link errors when attempting to build the sample and generated
DriverWizard C code in C++ mode.
« B23634 (Chen) »
- Windows 98/Me: Fixed WinDriver registration licenses (originated in
v7.00).
« B24357 (Chen) »
- 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.00).
« B24410 (Chen) »
- USB on Windows: Fixed rare crash that could occur when a device was
un-plugged immediately after being plugged-in.
« B23721 (Nili) »
- 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.23).
« B23845 (Itay) »
- 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.00).
« B22049 (R20272) (Itay) »
- USB on Windows: Fixed system halt that previously occurred if the
transfer timed-out before the actual transfer began.
« B22050 (R20273) (Itay) »
- 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.23).
« B21889 (R20098) (Itay) »
- 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.
« B21177 (R19603) (Itay) »
- 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.
« B20785 (Chen); This bug was actually fixed for Windows and
Linux in v7.00 of WD, but wasn't documented in the v7.00 release notes
... »
- DriverWizard: Fixed parallel port code generation (originated in
v7.00).
« B23000 (Itay) »
Version 7.00 for Windows (Release Date - March 21
st 2005)
Version 7.00 for Linux (Release Date - April 26
th 2005)
- 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.
« B22093 »
- 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.
- 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_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).
- 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.
Version 6.23 (Release Date - November 9
th 2004)
- PCMCIA: Added implementation of writing to PCMCIA attribute space.
- 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.22 for Windows CE (Release Date - August 17
th 2004)
- Added support for Windows CE 5.0.
- Added support for USB 2.0.
- 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.22 (Release Date - July 26
th 2004)
- 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.
- 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.
- 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.21 (Release Date - May 12
th 2004)
- PCI/ISA: Added an API to enable cards cleanup handling upon an application's termination.
- Debugging: Simplified usage of console-mode WDDEBUG.
- Windows: Improved wdreg.exe installation utility.
- USB: Fixed multi-interface USB device INF generation and installation/uninstallation from the 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.20 (Release Date - March 16
th 2004)
- 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)
- 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 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.
- 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.03 (Release Date - August 11
th 2003)
- Support for ARM-based platforms on Windows CE
- Support for USB remote wakeup feature
- USB: Improved bulk transfer rates on Windows XP and Windows Server 2003
- USB: Added device reset and wakeup functions
- 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 95/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.
Version 6.02 (Release Date - May 22
nd 2003)
- 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
- 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.
- Linux kernel 2.4.20: Now fully supported after having experienced compilation problems.
- Linux: Resolved installation problems on multi-processor (SMP) systems (since v6.00).
- 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.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).
- 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.
- 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).
Version 6.01 (Release Date - April 9
th 2003)
- wdreg source code supplied
- STMicroelectronics USB HID samples: for USB/Serial bridge (st/rs232u) and for 92163 USB
Evaluation Kit (st/92163).
- 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.
- 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).
Version 6.00 (Release Date - March 17
th 2003)
- 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.
- 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.
- 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 0x8000000 interrupts on semaphore_release that
nobody waited on.
Version 5.22 (Release Date - November 28
th 2002)
- 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.
- Improved support for USB composite devices performing control transfers.
- WinDriver and KernelDriver documentation improved, including restructuring, many contents
fixes and useful additions.
- 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.
Version 5.21 (Release Date - October 23
rd 2002)
- 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.
- 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 (231) 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.
Version 5.20 (Release Date - September 1
st 2002)
- 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.
- 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.
- 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.05b (Release Date - August 28
th 2002)
- Added support for Windows 2000 service pack 3.
Version 5.05 (Release Date - May 5
th 2002)
- 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.
- 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.
- 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.
Version 5.04 (Release Date - January 24
th 2002)
- 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.
- 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.
- 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.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().
Version 5.03 (Release Date - September 12
th 2001)
- WinDriver and KernelDriver support Windows XP(RC1).
- WinDriver supports Windows CE 3.0.
- WinDriver and KernelDriver support Linux kernel 2.4.x.
- 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.
- 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.
Version 5.02 (Release Date - June 25
th 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/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.
- 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.
- 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"
- Fix: Minor errors in various places.
- Fix: Added the documentation about the function WD_UsbResetDevice() which was missing
from the version 5.00 manual.
Version 5.01 (Release Date - May 8
th 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.
- 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.
- Fix: Several minor DriverWizard bug fixes.
- Fix: The PCI INF file generated by DriverWizard now copies wdpnp.sys to the correct location.
- 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.00 (Release Date - April 12
th 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.
- 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().
- Fix: KernelDriver USB generates C and C++ SYS files for Windows 2000.
Version 4.33 (Release Date - November 8
th 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.
- 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.
- 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.
- 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
KernelPlugin.
- 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.32 (Release Date - March 26
th 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.31 (Release Date - February 24
th 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.30).
- Fix: WD_DMAUnlock() on Windows 98, Windows NT/2000 (bug only in V4.30).
- Fix: error message when installing USB INF file on Windows 2000.
Version 4.30 (Release Date - January 17
th 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 IntWait without locking machine.
Version 4.20 (Release Date - November 15
th 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 DMA also for Linux 2.2 (only 2.0 supported previously).
- Fixed scatter gather DMA in Windows 98.
- Unix make files: Fixed DOS slashes.
Version 4.14 (Release Date - July 28
th 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.10 - 4.12 (Release Date - February 2
nd 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
th 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.03 (Release Date - May 31
st 1998)
- Enhanced support for Multi-CPU Multi-PCI bus
- Corrected the interrupt count value returned by WD_IntWait.
Version 3.02 (Release Date - April 24
th 1998)
- Minor improvements in DriverWizard
- Supports Windows NT checked build
Version 3.01 (Release Date - October 11
th 1997)
Version 3.00 (Release Date - September 28
th 1997)
- Added DriverWizard to package.
- DriverWizard enables the programmer to 'talk' and 'listen' to his card via a windows user
-interface.
The 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.12 (Release Date - March 21
st 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.11 (Release Date - March 11
th 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.10 (Release Date - February 20
th 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.