Release Notes


WinDriver™ Version History

This document describes the changes in the software since version 2.1.0.

Version 16.3.0

Release Date 01.07.2024

New Features

  • DriverWizard: Generate Static or Dynamic Libraries with CMake.
  • pci_diag, wdreg, Generated Code: Console applications will now have colored output.
  • Linux installation: Linux installation will now feature a colored ASCII version of the WinDriver logo (Only when installing WinDriver SDK, not for redistributed driver).

Enhancements

  • Linux: Added support for newer kernel versions, up to 6.9.4.
  • DriverWizard, Windows: INFs will be generated in UTF-16 encoding.

Fixes

  • Linux, DMA, ARM64: Fixed support for DMA on NVidia AGX platforms. (issue since v14.7.0)
  • Linux, DMA: Various fixes for improved stability in kernels above 5.19. WinDriver will take ownership of the opened PCI device on kernels 5.19 and higher.
  • DriverWizard, Predefined Action Flows: Fixed crash when having long PDAs, fixed issues in code generation of PDAs, fixed graphic issues with the PDA pane (issue since v.16.2.0)
  • DriverWizard: Fixed issue with blank configuration space when loading WDP project files (issue since v.16.2.0)
  • DriverWizard, 32 bit applications running on 64 bit kernels: Fixed compilation issues in 32on64 generated code for Visual Studio. (issue since v.16.2.0)
  • USB, 32 bit applications running on 64 bit kernels: Fixed crashes and issues with API. (issues since v.15.0.0)
  • pci_diag, usb_diag, Samples and Code Generation: Fixed various issues and crashes in samples and generated code in Python, Java, C# and C. (issues since v.14.7.0)
  • Kernel Plugin: Fixed code generation of Kernel PlugIn when the user app’s language is C#, Java or Python (issues since v.16.2.0). Removed unneeded errors from configure script in Linux.
  • xdma_diag, DMA: Fixed crash when switching from Polling to Interrupt methods (v.14.7.0)

Obsolete Features

  • Removed support for native Windows 10 32 bit (x86) and Linux 32 bit (x86) operating systems (32 bit user applications running on 64 bit kernels will still be supported, Linux ARM32 is still supported).

Version 16.2.0

Release Date 27.11.2023

New Features

  • Windows, DriverWizard: Generate drivers and Kernel Plugins automatically
    signed with a test certificate, to avoid manually disabling digital signature enforcement constantly during development.
  • DriverWizard: Added no-code creation of Predefined Action flows (PDAs) that are added to the generated code in all supported languages.

Enhancements

  • Compilation, C/C++: All WinDriver based apps will require either x86_64, i386, ARM or ARM64 to be defined as a preprocessor definition.
  • Windows: All Qt based GUI applications will now depend on Qt 6. Qt based GUI applications will now run natively on Windows ARM64.
  • Linux: Added support for newer kernel versions, up to 6.6.1.

Fixes

  • DriverWizard: Fixed various graphic issues.
  • Windows: Allow creating drivers that support both legacy and recent versions of Windows 10 and 11. (issue since v15.0.0)
  • Fixed kernel security issues: CVE-2023-47569, CVE-2023-47570, CVE-2023-47571, CVE-2023-47572, CVE-2024-26314 (issue since v6.0.0)

Obsolete Features

  • Windows: Removed support for generating ARM32 projects in Windows.

Version 16.1.0

Release Date 09.05.2023

New Features

  • Windows ARM64: Support Windows 10 and Windows 11 for ARM64 CPU architecture.
  • Windows and Windows ARM64: Added support for Visual Studio 2022.
  • DriverWizard: Added support for BARs larger than 4GB.

Enhancements

  • xdma_diag: Fixed segmentation fault crash.
  • CMake: Fixed user app sample automatic platform detection. (issue since v14.3.0)
  • Windows, DriverWizard, USB: Fixed issue of missing USB devices in DriverWizard device
    selection window. (issue since v16.0.0)
  • Windows: Fixed wdreg.exe false negative signature warning. (issue since v16.0.0)

Fixes

  • DriverWizard: Fixed issues in INF Generation and 32on64 bit projects.(issue since v14.8.0)
  • Linux x86_64: Fixed performance degradation in Polling DMA.(issue since v14.8.0)
  • Windows: Fixed wdreg.exe and INF installation issues.(issue since v14.8.0)

Obsolete Features

  • Windows: Removed support for Windows 8.1.
  • DriverWizard: Removed support for Visual Studio 2012.

Version 16.0.0

Release Date 09.01.2023

New Features

  • DriverWizard, Debug Monitor, WDREG_Frontend: New look and feel.
  • Samples, Avalon MM: Added support for Intel AN829 DMA IP tested on Intel Altera Stratix 10.

Enhancements

  • Debug Monitor: Added styled output and links to function documentation.
  • Linux: Added support for newer kernel versions, up to 6.1.0.

Fixes

  • DriverWizard: Fixed issues in INF Generation and 32on64 bit projects.(issue since v14.8.0)
  • Linux x86_64: Fixed performance degradation in Polling DMA.(issue since v14.8.0)
  • Windows: Fixed wdreg.exe and INF installation issues.(issue since v14.8.0)

Version 15.1.1

Release Date 23.08.2022

Enhancements

  • Windows, CMake: Added support for user mode application compilation in MinGW.

Fixes

  • Linux ARM64: Fixed crash when opening PCI devices.(issue since v14.8.0)
  • Linux ARM64: Fixed bus error when accessing shared buffers.(issue since v14.8.0)
  • Windows: Fixed digital signature issue. see Microsoft Knowledge Base article KB5017241(issue since v15.1.0)

Version 15.1.0

Release Date 14.06.2022

Enhancements

  • Linux: Added support for newer kernel versions, up to 5.18.2.
  • MacOS: Added support for macOS 12 (Monterey)
  • Windows: Added support for Windows Server 2022

Fixes

  • Linux ARM64, Kernel PlugIn: Fixed configure file for ARM64 versions.
  • DriverWizard Code Generation: Fixed various linking issues in generated code.
  • Installer: Fixed various installation issues.(issue since v15.0.0)

Obsolete Features

  • Linux: Removed Qt4-based versions of DriverWizard, Debug Monitor and XDMA GUI.

Version 15.0.0

Release Date 01.02.2022

New Features

  • Windows: Support Windows 11 public release.
  • Linux ARM/ARM64: Added DriverWizard, Debug Monitor, xdma_gui.

Enhancements

  • Documentation: Added PDF readmes to sample directories.
  • DWORD from now on would be defined as a 32-bit unsigned integer on all operating systems (As opposed to differing sizes on different OSes).
  • Directory structure overhaul: All samples would be located in WinDriver/samples/(LANGUAGE)/
  • Improved performance of 32 bit applications on 64 bit OSes. Added padding to structs in 32on64 bit mode to unify struct sizes.
  • Linux, Memory mapping: Added WD_ITEM_MEM_USER_MAP flag.
  • Linux, Memory mapping: Added the ability to read BAR memory from debuggers such as gdb using Card.Item[x].I.Mem.pUserDirectMemAddr.
  • Linux, ARM/ARM64: Allow cross compilation of the WinDriver kernel module, allowing WD to support a broader range of platforms.
  • Linux: Added support for newer kernel versions, up to 5.16.1.

Fixes

  • Linux, GPUDIRECT: Fixed mechanism.
  • Windows, DriverWizard: Fixed devcon dependency issue causing issues with INF installation.(issue since v14.8.0)
  • Linux, C/C++ Samples: Fixed compilation warnings and issues on gcc 9.(issue since v14.7.0)
  • Linux, C/C++ Samples, CMake: Fixed CMake bug of not auto-detecting current platform.(issue since v14.2.1)
  • Linux: Fixed installation issues on kernel 5.10.x.(issue since v14.6.0)

Version 14.8.0

Release Date 20.10.2021

New Features

  • Windows: Support Windows 11 Preview Build.
  • MacOS: Support M1 (ARM64) Processors.
  • C#.NET: Added Console PCI user sample and code generation, which supports .NET 5 on Windows, Linux and MacOS.

Enhancements

  • Linux, Interrupts: added INTERRUPT_DONT_GET_MSI_MESSAGE flag.
  • Windows, wdreg: Refactored and added dependency on pnputil and devcon.
  • Linux: Added support for newer kernel versions, up to 5.14.11.

Fixes

  • Linux: Fixed DMA corruption issues, deadlock issues.
  • Kernel Plugin: Improved security.
  • Java: Fixed generated code.
  • C/C++ Samples: Fixed compilation warnings and issues.(issue since v14.7.0)
  • Interrupts: Fixed synchronization issues

Obsolete Features

  • Removed support for Windows 10 IoT Core.

Version 14.7.0

Release Date 30.05.2021

New Features

  • Added code for Intel Altera Avalon Memory Mapped (MM) DMA IP, Samples + Code Generation.
  • .NET: Added support for .NET 5 allowing new WinDriver shared library (wdapi_netcode)+ PowerShell sample to run on Windows, Linux and MacOS.
  • Support PCI Express over Thunderbolt.

Enhancements

  • Linux ARM64: Added support for the following development boards: NVidia Xavier AGX, NVidia Xavier NX.
  • PCI samples: Refactored samples and introduced new APIs in diag_lib for console UI.
  • Linux: Added support for newer kernel versions, up to 5.12.2
  • MacOS: Added support for macOS 11 (Big Sur)

Fixes

  • Linux: Fixed MSI-X interrupts on Linux Kernels >= 4.12
  • Interrupts: Improved synchronization.
  • Java: Fix WDC_ReadAddrBlock/WriteAddrBlock.(issue since v14.0.0)
  • PLX Samples: Added differentiation between Lite and regular PLX devices for DMA purposes.
  • Interrupts: Fix issue where Kernel PlugIn handle remains valid after WDC_IntDisable() (if fUseKP was true)
  • DriverWizard Linux: Fixed bug which caused USB devices not to be shown.(issue since v14.4.0)

Version 14.6.0

Release Date 17.01.2021

New Features

  • Linux, DriverWizard: Added ability to generate a self extracting installer and uninstaller using an SH file.
  • New and updated documentation based on the Doxygen framework.

Enhancements

  • PCI samples: Moved DeviceOpen, DeviceClose, DeviceFind to wdc_diag_lib
  • Wizard: Added ability to generate Kernel Plugin with Java and Python code.
  • Linux: Added support for newer kernel versions, up to 5.10.3

Fixes

  • Linux, Kernel PlugIn: Fixed installation issue on redistributed KPs in Linux Kernels >= 4.19.
  • Fixed various security issues.(issue since v6.0.0)
  • License: Fixed issue when calling WD_License many times with same license string.(issue since v6.0.0)
  • Windows, Redist: Fixed uninstallation script bug.(issue since v14.3.0)
  • Windows, CMake, NSIS: Fixed generation bugs.(issue since v14.3.0)
  • DMA 32on64 applications: Fixed mechanism.(issue since v14.3.0)
  • Python 3, pci_diag: Fixed DMA bugs.(issue since v14.4.0)
  • .NET: Fixed bug in Int structure values after WDC_IntEnable().(issue since v12.7.0)

Obsolete Features

  • Removed support for MacOS versions 10.10-10.12

Version 14.5.0

Release Date 19.10.2020

New Features

  • USB + PCI: Added support for MacOS versions 10.10-10.15. (Beta)

Enhancements

  • Linux: Improved Scatter Gather DMA stability and allocation speed.
  • DMA: DMA_DISABLE_MERGE_PAGES flag added.
  • PCI: WD_CARD_ITEMS value increased to 128.
  • PowerShell pci_diag: Added sample to Windows 32bit version.
  • Linux: Added support for newer kernel versions, up to 5.8.9

Fixes

  • Linux, Kernel PlugIn, Wizard: Added -DKERNEL_64BIT flag to generated configure file, fixing compilation in 64 Bit Linux.
  • Windows, CMake, NSIS: Fixed minor path bugs.(issue since v14.3.0)
  • Linux: Removed unneeded warnings when SR-IOV is disabled.(issue since v12.9.0)
  • pci_diag: Fixed PCI Configuration Space reading bug(issue since v12.6.0)
  • Python 3, pci_diag: Fixed PCI Strings bug(issue since v14.2.0)
  • PowerShell pci_diag: Fixed bug that prevented application restart without restarting the session.(issue since v14.5.0)

Obsolete Features

  • Removed support of Visual Studio 2010 and ddk_make.bat

Version 14.4.0

Release Date 14.07.2020

New Features

  • Added code for Xilinx QDMA IP, Samples + Code Generation including MM polling transfers.
  • DMA (Linux PCI): Added support for GPUDirect RDMA transfers between PCI devices controlled by WinDriver and selected NVIDIA GPUs.
  • Linux: Added DMA Transaction APIs.
  • Linux USB: Added support for WDU_ResetDevice().

Enhancements

  • New APIs: GetNumOfProcessors(), GetPageSize(), OsMemoryBarrier()
  • Windows installer: Microsoft C++ Redistributable 2015 included.
  • Linux: Added support for newer kernel versions, up to v5.7.1.

Fixes

  • Sample code: fixed bugs, changed time_diff() value to be double instead of DWORD.
  • Windows, DMA, 32 on 64 bit apps: fixed bugs.(issue since v14.3.0).

Obsolete Features

  • Stopped support for Windows 7.

Version 14.3.0

Release Date 12.04.2020

New Features

  • DMA, Windows: Added DMA Transaction APIs.
  • PCI, Windows: Added a sample for using WinDriver .NET API via PowerShell.
  • Code Generation: Generate a self extracting EXE installer with Visual Studio, CMake and NSIS.
  • Linux ARM64: Added support for NVidia Jetson TX2.

Enhancements

  • PCI, Windows: Performance improvement by 2.5x in I/O functions.(issue since v12.0.0).
  • PCI, Samples: Added new DMA Transaction API examples to the following samples: Xilinx XDMA, PLX 9056, plx_dotnet (C# sample).
  • Linux: Added support for newer kernel versions, up to v5.5.13.
  • Code Generation, Windows: redist folder now includes an uninstall script.
  • PCI, Samples: DMA performance tests added.

Fixes

  • Fixed various bugs.

Version 14.2.1

Release Date 10.01.2020

New Features

  • Code Generation: Support CMake project generation for C language projects (currently, without Kernel PlugIn support).

Fixes

  • Windows: Fixed bug when using renamed driver.(issue since v14.2.0).
  • C Samples: Removed unneeded includes
  • WD_PciConfigDump: Fixed bug when calling from Kernel PlugIn.(issue since v12.8.0).
  • Fixed various bugs.

Version 14.2.0

Release Date 11.11.2019

New Features

  • Code Generation: Support Python 3 code generation.
  • usb_diag (C, Python, Java): Tested and verified USB3 and USB3.1 support. Added speed tests, changed default transfer sizes for USB3 support
  • Windows: WinDriver kernel module is using WDF framework.

Enhancements

  • Linux: Added support for newer kernel versions, up to v5.3.6.
  • Linux, USB: added compilation flag to windrvr_usb module to support opening multiple USB devices with the same VID/PID with WinDriver.

Fixes

  • 32 on 64 bit Interrupts: fixed wrong value of dwEnableIntType.
  • Wizard: Fixed various bugs in: Kernel PlugIn Code generation, License window, Check for updates window.
  • Windows, WDC_DMAContigBufLock: Fixed bit masks mechanism.(issue since v14.1.0).
  • C#/VB.NET API: Fixed the functions WDC_Version(), WDC_GetWDHandle(), WDC_GetDevContext(), WDC_PciGetHeaderType()(issue since v12.7.0).
  • Linux ARM: Fixed driver compilation error.(issue since v14.1.0).

Obsolete Features

  • ISAPnP: Removed ISAPnP support.
  • High Level API: Removed obsolete functions GetPageCount(), InterruptThreadEnable(), InterruptThreadDisable(), event_register(), event_unregister().
  • Low Level API: Removed obsolete legacy versions of WD_DMALock(), WD_IntEnable() IOCTLs.

Version 14.1.1

Release Date 28.07.2019

Fixes

  • Fixed license bug.(issue since v14.1.0).
  • Removed deprecated IOCTLS from older WinDriver versions.

Version 14.1.0

Release Date 30.06.2019

New Features

  • Windows: Added support for Visual Studio 2019.
  • Linux ARM/ARM64: Added automated install script.

Enhancements

  • Linux: Added support for newer kernel versions, up to v5.1.13.
  • Windows, WDC_DMAContigBufLock: Allowing possible buffers locking up to 4GB. Allow adding bit masks (same as feature added in Linux on WD14.00).
  • usb_diag (C, Python, Java): Added menu option to display device properties.
  • usb_diag (C, Python, Java): Added sample code to allow maximum 1 device per process.
  • Linux, WDU_GetDeviceRegistryProperty: added device properties that can be obtained in Linux.

Fixes

  • Various security fixes.

Version 14.0.0

Release Date 04.04.2019

New Features

  • Added JNI DLL and samples in the Java programming language for PCI and USB.
  • Added code generation in the Java programming language.
  • Linux ARM and ARM64: Added support for the following development boards NVidia Jetson TK1, NVidia Drive PX2, Raspberry Pi 2, 3, 3b+, Boundary Sli.imx6 (sabrelite).

Enhancements

  • Linux: Added support for newer kernel versions, up to v4.19.32.
  • Linux: Added ability to map multiple MSI interrupts.
  • Linux, WDC_DMAContigBufLock: Allow inputting an address mask for this function.
  • Refactoring of get_os_type() API function.

Fixes

  • Kernel Plugin: Fixed compilation issues.
  • C#, Python: Minor bug fixes in generated code.
  • C#.NET/VB.NET: Several API bug fixes in wdapi_dotnet1290_32.dll.(issue since v12.8.1).

Version 12.9.0

Release Date 04.12.2018

New Features

  • IPC: Added Interrupt sharing between proccesses.
  • Linux: Added SR-IOV support.

Enhancements

  • DriverWizard: Allow importing registers from CSV files.
  • DriverWizard, Windows: Generates a vcxproj file to build the driver with custom version information (instead of the obsolete ddk_make generated makefiles).
  • Linux: Added support for newer kernel versions, up to v4.19.1.

Fixes

  • Windows: Fixed crashes in PCI Scan and MSI interrupts.
  • Windows 10 IoT Core: Allow scanning PCI devices without INF installed.

Version 12.8.1

Release Date 25.08.2018

Enhancements

  • Qt: WinDriver GUIs depend on Qt 5. In Linux both Qt 4 and Qt 5 versions of DriverWizard and Debug Monitor were kept for backwards compatibility.

Fixes

  • Fixed various security issues.

Version 12.8.0

Release Date 15.07.2018

New Features

  • Added samples in Python programming language for PCI and USB.
  • Added code generation in Python programming language.

Enhancements

  • Linux: Added support for newer kernel versions, up to v4.17.3.
  • C#.NET PCI Sample: Added ability to map S/G and Contiguous DMA buffers.
  • Windows: Added new function to WinDriver API library: check_secureBoot_enabled()
  • Windows, DriverWizard: Warning when trying to open a device without installing an INF file.

Fixes

  • Windows 10 IoT Core: Fixed samples in ARM architecture.(issue since v12.7.0).
  • Windows 32bit: Pre-compiled samples were brought back to installation package.(issue since v12.7.0).
  • C#.NET/VB.NET: Several API bug fixes in wdapi_dotnet1280.dll.(issue since v12.7.0).

Version 12.7.0

Release Date 04.04.2018

New Features

  • Windows: Added wdreg_frontend GUI to ease un/installation of INF files and Kernel PlugIns during the development phase.
  • Windows: Added possibility to save and retrieve kernel debug messages in case of BSOD with Debug Monitor utility.
  • Windows 10 IoT Core: samples can now be run using an SSH terminal (beta).

Enhancements

  • Linux: Added support for newer kernel versions, up to v4.15.3.
  • Debug Monitor: Allow changing the debugged driver without relaunching the application.
  • Windows: C#/VB.NET now supported under Visual Studio 2015 and Visual Studio 2017. wdapi_dotnet DLL source code was translated from Managed C++ syntax to newer C++/CLI syntax.
  • Windows: C#/VB.NET Solutions will now reside in (PROJECT_DIR)/(PLATFORM)/(IDE) subdirectory of the sample directories (similar to C projects).

Fixes

  • Windows: Fixed .NET samples compilation.(issue since v12.2.0).
  • DriverWizard: Fixed “Listen to Interrupts” when Registers are present bug.(issue since v12.2.0).
  • Windows 32bit: Fixed renamed driver compilation errors.(issue since v12.5.0).
  • Windows: Fixed various security issues: CVE-2024-25087.

Version 12.6.0

Release Date 24.12.2017

New Features

  • PCI: Added new functions to WinDriver API library: WDC_PciGetExpressOffset, WDC_PciGetHeaderType, PciConfRegData2Str, PciExpressConfRegData2Str.

Enhancements

  • DriverWizard: Improved directory structure of the generated code.
  • DriverWizard: Various improvements and fixes in license registration window and license request form.
  • PCI: Support Kernel Plugin code generation for Microsoft Visual Studio 2017.
  • Linux: Added support for newer kernel versions, up to v4.14.5.

Fixes

  • PCI: Recognize the registered license in XDMA GUI utility(issue since v12.4.0).
  • Windows: Fixed various security issues: CVE-2024-22102, CVE-2024-22103, CVE-2023-51778

Version 12.5.1

Release Date 31.10.2017

Fixes

  • Windows: Fixed security issues CVE-2024-22104, CVE-2024-22105, CVE-2024-22106, CVE-2024-25088

Version 12.5.0

Release Date 03.09.2017

New Features

  • Added support for Windows 10 IoT Core x86, x64 and ARM.Note: WinDriver for Windows 10 IoT Core is provided as beta version.
  • PCI: Implemented GUI utility for Xilinx XDMA devices.

Enhancements

  • Linux: Added support for newer kernel versions, up to v4.12.8.
  • PCI: Added customized DriverWizard code generation for the Xilinx XDMA design.
  • Enhanced License Info window in DriverWizard.
  • PCI: Simplified code generation by removing ‘Power Management’ and ‘Plug and Play’ selection options. ‘Power Management’ and ‘Plug and Play’ will always be included in the generated code.
  • Added option to preallocate DMA Buffers to INF creation dialog window in DriverWizard.
  • Added ‘Find’ capability to WinDriver Debug Monitor GUI utility.
  • Added option to ‘wddebug’ command line utility that allows to save the log to a file.
  • PCI: Added WDC_ScanCapsBySlot(), WDC_GetPciExpressGen() and WDC_GetPciExpressGenBySlot() functions to WinDriver API Library.
  • Various DriverWizard improvements and fixes.

Fixes

  • Windows PCI: Fixed out of bounds exception when running 32-bit .NET application on 64-bit Windows OS.(issue since v12.1.0).
  • Linux PCI: Fixed OS crash when opening 64-bit kernel plugin from 32-bit user mode application.
  • PCI: Removed garbage that appeared in ‘Offset’ field when selected ‘Add access register’ in DriverWizard.
  • USB: Fixed USB device detection issue in DriverWizard.

Obsolete Features

  • Windows USB: Removed references to Ellisys USB Analyzer in DriverWizard.
  • Removed obsolete ‘speaker’ and ‘speaker_gui’ samples.

Version 12.4.0

Release Date 23.04.2017

New Features

  • Windows: Added support for Microsoft Visual Studio 2017.

Enhancements

  • PCI: Added possibility to preallocate several DMA buffers.
  • PCI: Added example of DMA API usage to the generated code.
  • PCI: Increased the maximum number of scanned PCI devices from 100 to 256 when “WinDriver for Server” license is used. Regular WinDriver license allows up to 100 scanned devices.
  • Linux: Added support for newer kernel versions, up to v4.10.8.
  • Linux: Simplified configuration scripts that are used for WinDriver and Kernel Plugin build.

Fixes

  • Windows: Fixed windrvrXXXX.lib for driver rebuild with proprietary details(issue since v12.3.0).
  • PCI Express: Fixes in XDMA sample(issue since v12.3.0).
  • Linux: Fix kernel bug on kernels 4.8 and higher with CONFIG_HARDENED_USERCOPY defined.
  • Linux: Fixed kernel plugin module loading for cases when __stack_chk_fail symbol isn’t defined.

Obsolete Features

  • Windows: Stopped supporting Visual Studio 2005 and Visual Studio 2008.
  • Windows: Removed support for .NET 1.1 and 2.0.
  • PCI: Removed WDC_ID_U and WDC_SLOT_U unions definitions.

Version 12.3.0

Release Date 13.11.2016

New Features

  • PCI: Added sample for Xilinx� DMA Subsystem for PCI Express� (XDMA).
  • Linux: Added support for newer kernel versions, up to v4.8.4.

Enhancements

  • PCI: Added WDC_IntType2Str() function to high level API.
  • PCI: Added WDC_GET_ADDR_SPACE_SIZE helper macro to high level API.
  • PCI: Refactored the kernel plugin sample.
  • Linux PCI: When enabling MSI-X, try to enable maximum number of supported interrupts by the device, instead of predefined value.
  • Windows .NET: Added WDC_DMAReservedBufLock to .NET API.
  • Linux: Improved configure scripts to allow automatic installation on Ubuntu without specifying explicitly the kernel source.
  • Added command line utility to retrieve registration code.
  • Linux 32bit: Reduced WinDriver package footprint and made it similar to 64bit version.

Fixes

  • Windows: Make sure that the generated xxx_install.bat finds wdreg.exe when running as administrator.
  • Windows .NET: Fixed project properties of Visual Studio 2013 solution for building wdapi_dotnet 32bit DLL.(issue since v12.1.0).
  • Windows .NET: set project name of wdapi_dotnetXXX.dll similar to the DLL name (For users that are bulding wdapi_dotnetXXX.dll themselves).
  • Windows PCI: Fixed .NET exception when opening a PCI device.
  • Linux: Fixed alternate modules path in installation scripts.
  • Linux: Enable installation of two different WinDriver versions without renaming the driver.(issue since v11.9.0).
  • Linux: Fixed compilation error on older linux kernels that don’t define IORESOURCE_MEM_64.(issue since v12.2.0).
  • Linux PCI: Fixed a kernel crash when allocating DMA buffers.(issue since v12.1.0).
  • Linux PCI: Fixed DriverWizard bug that could cause generating Makefile that does not compile the generated xxx_lib.c.(issue since v11.5.0).
  • Linux: Delete LINUX.x.x.x directory when running ‘make clean’ in redist folder.
  • Linux: Fixed possible crash in debug messages mechanism.

Obsolete Features

  • PCMCIA: Stopped support for PCMCIA devices.
  • Windows: Stopped OS-specific support for Windows XP and Windows Vista (no longer supported by Microsoft).

Version 12.2.1

Release Date 22.06.2016

New Features

  • Linux: Added support for newer kernel versions, up to v4.6.2.

Fixes

  • PCI on Windows: Fixed BSOD when using level sensitive interrupts(issue since v12.2.0).
  • Linux: Fixed generated module compilation(issue since v12.2.0).
  • Windows 32-bit: Fixed BSOD when entering long license string(issue since v12.2.0).
  • Windows XP 32-bit: Fixed driver loading issue(issue since v12.2.0).
  • Windows .NET: Set correct value of WD_LICENSE_LENGTH in .NET API(issue since v12.2.0).
  • Linux: Fixed possible compilation warnings in linux_wrappers.c.
  • Windows: Refactored Start Menu shortcuts for Windows 7 and lower.
  • Windows .NET: Fixed wrong logic in .NET generated code in RegistersForm.IsLegalDirection() function.
  • Windows CE: Don’t build WDAPI library in debug mode which resulted in redundant log messages(issue since v11.9.0).

Version 12.2.0

Release Date 18.04.2016

New Features

  • Added an API to claim reserved DMA contiguous memory (Replacing the now-deprecated “WDC_IsaDeviceOpen” approach).

Enhancements

  • Refactor the Pci-diag Kernel Plugin sample: Removed KP related arguments from WDC_PciDeviceOpen/WDC_PcmciaDeviceOpen/WDC_IsaDeviceOpen APIs.

Fixes

  • Linux: Fixed a possible compilation error regarding “__stack_chk_fail_” routine(issue since v12.0.0).
  • PCI on Windows: Fixed bug when parsing PCI bars address higher than 32 bit for installed drivers(With INF)(issue since v6.0.0).
  • Fixed security issues: CVE-2024-25086.

Version 12.1.0

Release Date 06.01.2016

New Features

  • IPC – Added IPC (Inter Process Communication) between user processes using WinDriver infra-structure.
  • Buffer sharing – Added DMA and Kernel buffer sharing between multiple user-mode processes.
  • Linux: Added support for newer kernel versions, up to v4.3.3.

Enhancements

  • Linux & Windows: Rewritten the Shared-Buffer (Between User-mode driver and Kernel PlugIn) capability. It is now more resource-friendly (E.g. Allows non-contiguous allocation), and has far better chances to succeed. API was changed as well:WDC_SharedBufferAlloc/WDC_SharedBufferFree were renamed to WDS_SharedBufferAlloc/WDS_SharedBufferFree.
  • PCI: Added DMA memory allocation topci_diagsample code.
  • Windows: Added samples support (+ Code generation) for MS Visual Studio 2013 & 2015.

Fixes

  • Windows: Fix alignment issue of WDC_ADDR_DESC in WinDriver Kernel Plugin(issue since v11.8.0).
  • Linux: Fixed compilation issue of Kernel Plugin on Linux versions >= 4(issue since v12.0.0).
  • PCI on Windows: Kernel address of pre-allocated buffer was NULL after contiguous DMA lock(issue since v6.0.0).
  • Linux: Samples and Driver can now run with an older versions of glibc (DriverWizard still cannot)(issue since v11.8.0).
  • Linux 64-bit: Fixed DriverWizard possible startup-crash(issue since v11.8.0).
  • Linux 32-bit: Fixed Kernel PlugIn compilation error.
  • Windows CE 2013 USB: Fixed an incorrect data reads from isochronous pipe(issue since v11.7.0).
  • Windows: Fixed security issues: CVE-2023-51776, CVE-2023-51777, CVE-2023-51778.

Version 12.0.0

Release Date 09.08.2015

New Features

  • Windows: Added support for the Windows 10 public release.

Fixes

  • USB on Windows: Fixed an issue withWDU_ResetPipe()that could potentially be identified as a violation by Microsoft’s Driver Verifier utility.
  • Linux: Fixed occasional DriverWizard code-generation failure(issue since v11.9.0).

Obsolete Features

  • Windows: Stopped OS-specific support for Windows Server 2003 (no longer supported by Microsoft).

Version 11.9.0

Release Date 09.07.2015

New Features

  • Windows: Added support for Windows 10 Technical Preview build 10162.

Enhancements

  • Renamed the WinDriver driver module to add a WinDriver version indication —windrvr.sys/ko/dll(e.g.,windrvr1190.sys).
  • Linux: Added support for newer kernel versions, up to v4.1.1.
  • Windows: The driver signatures of the WinDriver driver module (windrvr.sys— currentlywindrvr1190.sys) and sample Kernel PlugIn driver (kp_pci.sys) were modified to use the new SHA-2 hashing algorithm. Note that installation of the new drivers on Windows 7 and Windows Server 2008 requires theMicrosoft Security Advisory 2949927update.
  • DriverWizard: Added a license-request data submission form to simplify the completion of the WinDriver order process.
  • DriverWizard: Added aHelpmenu option to check for WinDriver version updates.

Fixes

  • Windows CE 2013: Fixed redirection of Debug Monitor debug messages to the OS kernel debugger(issue since v11.7.0).
  • Windows .NET: Fixed the length of the WinDriver license string in the .NET WinDriver API header file.
  • Windows CE: Eliminated a redundant set-interface call with alternate setting 0 after a set-configuration call.

Version 11.8.0

Release Date 25.02.2015

New Features

  • PCI: Added APIs to scan for PCI capabilities (including specific PCI Express capabilities), and added related functionality to thewdc_diag_libandpci_diagsample code.

Enhancements

  • PCI: Improved the DriverWizard PCI configuration space dialog:Ordered the registers by their actual addresses.Added CardBus (PCI Header type 2) registers, PCI Express registers, and basic and extended (PCI Express) PCI capabilities registers.
  • Ordered the registers by their actual addresses.
  • Added CardBus (PCI Header type 2) registers, PCI Express registers, and basic and extended (PCI Express) PCI capabilities registers.
  • PCI: Modified the WinDriver API to improve support for 64-bit addresses, including changes to theWD_ITEMS,WD_TRANSFER, andWDC_ADDR_DESCstructures.
  • DriverWizard: Miscellaneous improvements to the wizard’s GUI, including a newLicense Requestform and toolbar changes.

Fixes

  • Linux PowerPC (PPC); 64-bit: Fixed the WinDriver license string registration(issue since v11.6.0).

Version 11.7.0

Release Date 26.10.2014

New Features

  • Windows CE: Added support for Windows Embedded Compact 2013 (WEC2013) on x86 and ARM platforms.

Enhancements

  • Linux: Added support for newer kernel versions, up to v3.17.0.
  • USB: Added support for device serial-number querying to the USB diagnostics C sample code:USB diagnostics library (usb_diag_lib) — newPrintDeviceSerialNumberByHandle()functionUSB diagnostics application (usb_diag.c) — newDisplay device serial numbermenu option
  • USB diagnostics library (usb_diag_lib) — newPrintDeviceSerialNumberByHandle()function
  • USB diagnostics application (usb_diag.c) — newDisplay device serial numbermenu option
  • Debug Monitor: Added an option to add timestamps to the log messages (wddebugandwddebug_gui), and GUI options to auto-save the log file and to add custom messages (wddebug_gui).

Fixes

  • USB on Windows CE: Fixed a possible stream halt due to the filling of an internal buffer as a result of an abundance of short packets(issue since v10.0.1).
  • USB on Windows: Fixed a potential OS crash for a transfer with a very short timeout(issue since v9.0.0).

Version 11.6.0

Release Date 09.06.2014

Enhancements

  • Linux: Added support for newer kernel versions, up to v3.14.4.
  • WinDriver 64-bit (.NET): Added support for DriverWizard code generation of 32-bit .NET applications on 64-bit platforms.
  • ISA on Windows (.NET): Added theITEM_MEMORY_64BITitem type, for accessing physical 64-bit memory addresses, to the .NET API.

Fixes

  • PCI on Linux 64-bit: Fixed memory corruption when running a 32-bit application with a 64-bit Kernel PlugIn driver(issue since v10.3.0).
  • Windows: Fixed a rare memory leak.
  • PCI on Windows 64-bit: Fixed mapping of 64-bit physical addresses(issue since v10.4.0).
  • PCI: Fixed synchronization of the lost-interrupts count returned in theWD_INTERRUPT dwLostfield.
  • USB on Windows: Fixed occasional OS crashes when using short timeouts (usually smaller than one second) for single-blocking transfers.
  • Kernel PlugIn PCI on Linux: Fixed the return value of thekp_interlocked_exchange()function to return the old Kernel PlugIn interlocked counter value and not the new value.

Version 11.5.0

Release Date 23.01.2014

Enhancements

  • Linux: Added support for newer kernel versions, up to v3.13.0.
  • PCI on Windows: Added support for building the generated DriverWizard library code into a DLL using MS Visual Studio.
  • Windows: Added MS Visual Studio 2013 support to the generated DriverWizard code.
  • Removed the minimal 17,000 microseconds sleep-period SW limitation for busy sleep (WDC_Sleep()with theWDC_SLEEP_NON_BUSYoption, orWD_Sleep()with theSLEEP_NON_BUSYoption).
  • ISA: Added anITEM_MEMORY_64BITitem type for accessing physical 64-bit memory addresses.

Fixes

  • USB on Windows: Fixed a potential OS crash during pipe reset.
  • PCI on Linux: Fixed DMA buffers release when closing a PCI device(issue since v11.4.0).
  • Linux PowerPC (PPC): Fixed allocation of contiguous DMA buffers(issue since v10.3.0).
  • Linux: Fixed OS crash whenLINUX_user_page_list_get()fails.
  • PCI on Linux: Fixed an OS crash when exiting the driver application usingCtrl+C(issue since v11.1.0).
  • USB on Windows: Fixed the generated DriverWizard C# code to handle aNullPointerExceptiononhMutexinDeviceAttach()(issue since v8.0.0).
  • Linux: Fixed an OS crash when unlocking a DMA buffer on Linux 2.6 or higher configured with_CONFIG_SWIOTLB(issue since v9.1.0).

Obsolete Features

  • Windows CE 4.x/5.x: Removed the WinDriver component for Microsoft Platform Builder.
  • Linux: Removed the Debian and Red Hat Package Manager (RPM) WinDriver installation packages.
  • USB: Removed the Cypress EZ-USB sample code.
  • Licensing: Stopped support for old WinDriver license strings.

Version 11.4.0

Release Date 18.08.2013

Enhancements

  • Linux: Added support for kernel 3.10.5.
  • Windows: Added support for Windows 8.1 and Windows Server 2012 R2 (32-bit and 64-bit).
  • Windows: Verified USB 3.0 support, including improved performance.
  • PCI on Windows: Added support for preallocating bidirectional contiguous DMA buffers (DMA_TO_FROM_DEVICE) using INF-file configuration.
  • PCI interrupts: Added support for simultaneously opening multiple PCI devices with the same non-sharable (fNotSharable=1) level-sensitive interrupt (same IRQ number).

Fixes

  • PCI: Fixed a potential crash when opening and closing multiple PCI devices with Kernel PlugIn handles.
  • Windows: Fixed the generated DriverWizardsourcesfile used for building a renamed version of the WinDriver driver module (windrvr6.sys)(issue since v9.0.0).
  • Windows 64-bit (PCI): Fixed compilation of 32-bit (x86) generated DriverWizard projects with a Kernel PlugIn driver on 64-bit Windows platforms(issue since v10.3.0).
  • Linux: Fixed an OS crash when terminating an application usingCTRL+C.
  • PCI interrupts on Linux: Identify device support for Message-Signaled Interrupts (MSIs) or Extended Message-Signaled Interrupts (MSI-Xs) when the device doesn’t also support level-sensitive interrupts(issue since v9.1.0).
  • PCI on Linux: Attempt to enable the maximal possible amount of Message-Signaled Interrupts (MSIs) for PCI devices that support MSIs(issue since v10.2.1).
  • Linux PCI: Fixed an OS crash when exiting an application without closing DMA handles.
  • Linux: Fixed anOS_unlock_user_buff()warning when compiling the WinDriver kernel module(issue since v11.1.0).

Version 11.3.0

Release Date 07.04.2013

New Features

  • PCI Express: Added customized DriverWizard code generation for the Altera Qsys and Xilinx BMD designs.

Enhancements

  • Added support for Linux kernel 3.8.5.
  • PCI: Moved thebits.handpci_regs.hheaders from thesamples/shared/WinDriver directory to theinclude/directory.

Fixes

  • .NET (Windows): Fixed possible build errors with the sample and generated DriverWizard C# and Visual Basic .NET code.
  • USB: Blocking input streams could sometimes return less data than requested.
  • ISA on Windows: Fixed the DriverWizard-generated_install.batinstallation script(issue since v10.4.0).

Version 11.2.0

Release Date 06.01.2013

New Features

  • Windows: Added support for MS Visual Studio 2012 and Windows Driver Kit (WDK) 8.

Enhancements

  • Added support for Linux kernel 3.7.1.
  • PCI on Linux: Added support for enabling interrupts of a specific type (level-sensitive/MSI/MSIx) from among the types supported by the device.
  • PCI Express: Modified functions in the Xilinx BMD design (bmd_lib) and Altera Qsys design (qsys_lib) sample libraries, to return success or failure indications.

Fixes

  • Windows: Fixed an OS crash (BSOD) when testing WinDriver with Microsoft’s Windows Hardware Certification Kit (HCK) 2.0 (part of the latest WHQL certification).
  • USB: Fixed execution of the power-change callback (WDU_POWER_CHANGED_CALLBACK).
  • Windows: Updated the digital signature of the WinDriver driver (windrvr6.sys) to support Windows 8(issue since v11.0.0).
  • PCI on Linux: Fixed the IRQ number update when enabling Message-Signaled Interrupts (MSI)(issue since v9.1.0).
  • Windows: Fixed compilation errors when building the WinDriver .NET API DLL (wdapi_dotnet.dll) in release mode(issue since v7.0.1).

Obsolete Features

  • Removed support for MS Visual Studio 5/6/2003, Borland C++ Builder, Visual Basic 6.0, and Delphi.

Version 11.1.0

Release Date 26.08.2012

Enhancements

  • PCI on Windows CE: Added a newWD_ITEM_CE_MAP_VIRTUALflag to theWD_ITEM_OPTIONSenumeration, for performing the kernel mapping of physical memory to non-static virtual system addresses, as opposed to the default static kernel address mapping.
  • PCI Express: Added enhanced support for PCI Express cards with the Altera Qsys design —WinDriver/altera/qsys_design.The new sample was tested with the Altera Stratix IV GX development kit.
  • Linux: Improved IOCTLs performance.
  • PCI on Windows: Added the option to preallocate contiguous DMA buffers as part of the driver load process (when Windows is started), to prevent allocation errors caused by memory fragmentation.
  • Added support for Linux kernel 3.4.7.

Fixes

  • Linux: Added a/usr/lib64symbolic link to/usr/libfor 64-bit distributions in which there is no/usr/lib64directory, such as Ubuntu 11.10(issue since v11.0.0).
  • Linux: Added handling of multiplemodpostoccurrences, resolving a previous WinDriversedinstallation error relating to theconftest.s1file.
  • Linux: Fixed thewdreginstallation script’sautooption on Linux 3.x kernels(issue since v11.0.0).
  • Linux PowerPC (PPC): Fixed the multi-domain PCI scan functionality so that all domains are displayed(issue since v11.0.0).
  • PCI: Fixed a buffer overrun for a registered devices PCI scan (WDC_PciScanRegisteredDevices()/WD_PciScanCards()with theWD_PCI_SCAN_REGISTEREDoption) when there are more than 100 registered PCI cards(issue since v6.0.2).
  • PCI: Fixed possible data corruption when performing Scatter/Gather DMA from a 64-bit host to a 32-bit device with a buffer containing pages that are mapped to physical memory above the 4GB address range.
  • PCI: Fixed an occasionalWDC_xxxDeviceOpen()failure.
  • PCI on Windows: Fixed a potential race condition during Scatter/Gather DMA allocation(issue since v9.2.1).
  • Windows: Fixed a potential OS crash (BSOD) when existing a USB application.
  • PCI on 64-bit Windows: Removed the-DWINNTflag from the generated user-mode DriverWizard 64-bit Visual Studio projects. The use of this flag previously caused incorrect data to be returned when accessing the device context returned by theWDC_xxxDeviceOpen()functions ((PWDC_DEVICE)(*phDev)->pCtx) directly from a user mode application.(Issue since v10.0.1)
  • .NET API (Windows): Added missing MSI fields to the definition of theWD_INTERRUPTstructure —dwLastMessageanddwEnabledIntType— and implemented theWDC_GET_ENABLED_INT_TYPE,WDC_GET_ENABLED_INT_LAST_MSG, andWDC_INT_IS_MSImacros(issue since v9.1.0).

Obsolete Features

  • Removed obsolete samples.

Version 11.0.0

Release Date 26.02.2012

New Features

  • Windows: Added support for Windows 8 and Windows Server 2012 (32-bit and 64-bit).
  • DriverWizard: Added code generation for Windows GCC (MinGW/Cygwin).

Enhancements

  • Linux: Added Debian and Red Hat Package Manager (RPM) WinDriver installation packages.
  • Added support for Linux kernel 3.2.4.
  • PCI: Added support for 64-bit BAR addresses.

Fixes

  • Windows PCI 32-bit application running on a 64-bit kernel: Fixed disregard for thedwOptions WD_ITEMSfield values in calls to the WinDriver device information retrieval functions —WDC_PciGetDeviceInfo()/WDC_PcmciaGetDeviceInfo()or the low-levelWD_PciGetCardInfo()/WD_PcmciaGetCardInfo().
  • DriverWizard Kernel PlugIn code generation: Fixed the generatedKP_XXX_Open_32_64()function, to resolve a previous Kernel PlugIn compilation warning(issue since v10.4.0).
  • Windows 64-bit: Fixed the WinDriver installation for paths that contain spaces (e.g., installation to theProgram Filesdirectory)(issue since v8.0.0).
  • DriverWizard on Windows: By default, save generated projects in the WinDriverwizard/my_projectsdirectory(issue since v10.2.0).
  • USB on Windows: Fixed an OS crash when a USB device provides a configuration descriptor with no valid interface(issue since v7.0.0).
  • USB on Windows CE: Fixed a delay in the detach sequence when disconnecting a USB device during streaming(issue since v10.0.1).
  • USB streaming on Windows CE: Fixed handling of a 0 (infinite) timeout in the call toWDU_StreamOpen(); previously this caused an immediate timeout error, instead of setting no timeout (infinite wait)(issue since v10.0.1).
  • Windows: Fixed a minor 20-byte memory leak upon starting of the WinDriver driver.
  • Windows: Fixed a registry related issue that caused a security warning when using Microsoft’s Verifier utility (Verifier.exe).
  • PCI on Windows: Fixed a crash in the C# WinDriver applications upon failure to open a PCI device(issue since v8.0.0).

Obsolete Features

  • Stopped support for Mac OS X
  • Stopped support for Linux kernels 2.2.x and 2.4.x.

Version 10.4.0

Release Date 02.10.2011

New Features

  • Added support for Windows Embedded Standard 2009.
  • Added support for Windows Embedded Compact 7 (“Windows CE 7”).
  • Added support for Linux kernel 2.6.39.

Enhancements

  • PCI on Mac OS X: Added support for 64-bit BAR addresses.
  • Windows DriverWizard: Added a_install.batscript to the generated driver code, to simplify installation of renamed drivers.
  • PCI Altera sample: Added sample license registration toWinDriver/altera/pci_dev_kit/lib/altera_lib.c.
  • PCI on Windows: Scatter/Gather DMA allocation (usingWDC_DMASGBufLock()/WD_DMALock()) — disabled fall back to obsolete DMA allocation(issue since v9.2.0).

Fixes

  • WinDriver Windows installation: Modified thewdregutility to resolve occasionalERROR_FILE_NOT_FOUNDerrors due to a missingRunOnceregistry key definition.
  • Windows CE: Fixed detection of PCI device resources.
  • USB on Linux and Windows CE: Fixed an application crash in theusb_diagsample when trying to perform an action on an endpoint of a multi-interface device(issue since v10.0.2).
  • USB on Linux and Windows CE: Fixed a segmentation fault in theusb_diagsample when printing device information for a multi-interface device(issue since v10.3.0).
  • Windows 64-bit: Fixed the WinDriver library path in the generated DriverWizard Borland C++ Builder projects(issue since v8.0.0).
  • PCI: Fixed the interrupt type returned by the interrupt-enable functions —WDC_IntEnable()/WD_IntEnable()— when running a 32-bit application on a 64-bit kernel(issue since v9.1.0).
  • Visual Basic .NET (Windows): Fixed loading of sample and DriverWizard-generated Visual Basic .NET 2008 projects(issue since v10.2.0).
  • DriverWizard on Windows: Fixed support for keyboard input in theSelect Code Generation OptionsandSelect Additional Optionsdialogs(issue since v9.0.0).
  • PCI on Windows: Fixed the DriverWizard C# Kernel PlugIn code generation(issue since v8.0.0).
  • Linux USB: Fixed the installation of the WinDriver USB Linux GPL driver —windrvr6_usb.ko— on the Debian Squeeze distribution.
  • DriverWizard PCI: Fixed a compilation error in generated user-mode driver projects that include interrupt transfer commands(issue since v10.3.1).
  • USB on Linux: Fixed a memory leak in USB control transfers.
  • PCI on Windows: Fixed occasional errors in theWD_INTERRUPTlost interrupts counter (dwLostfield).

Version 10.3.1

Release Date 18.05.2011

New Features

  • Windows: Added support for Service Pack 1 of Windows 7 and Windows Server 2008 R2 (32-bit and 64-bit).
  • Linux: Added support for Linux kernel 2.6.38.

Enhancements

  • PCI Xilinx samples: The Xilinx Virtex5 sample (WinDriver/xilinx/virtex5/) has been replaced with a generic sample for PCI Express cards with the Xilinx Bus Master DMA (BMD) design —WinDriver/xilinx/bmd_design; the sample files and APIs were renamed accordingly. The new sample was tested with the Xilinx Virtex and Spartan development kits.
  • PCI Xilinx BMD Kernel PlugIn sample: Added aKP_BMD_Open_32_64()function toWinDriver/xilinx/bmd_design/kp/kp_bmd.c(previouslyWinDriver/xilinx/virtex5/bmd/kp/kp_vrtx.c).
  • PCI: Removed unnecessary pointer types and renamed internal struct types in thepci_diagsample and the generated DriverWizard Kernel PlugIn library and driver code, to conform to coding conventions and avoid confusion.

Fixes

  • USB on Linux: Fixed DriverWizard identification of USB devices on CentOS Linux distributions(issue since v10.2.1).
  • Mac OS X: Fixed the support for running 32-bit applications — including the DriverWizard andwddebug_gui— on 64-bit Mac OS X platforms. As part of this fix, there are now separate WinDriver distributions for 32-bit and 64-bit Mac OS X.
  • USB on Windows: Fixed BSOD on return from standby after sending aSET_CONFIGURATIONrequest from the user mode to the device(issue since v9.2.1).
  • Windows CE: Fixedproject_wd.bibto support installation of the WinDriver kernel module on WinCE6 platforms.
  • PCI: Removed the previous limitation on the amount of DMA handles that may be opened simultaneously.
  • Linux: Fixed driver installation error (“implicit declaration of function init_MUTEX”) on Linux kernels with real-time patches(issue since v10.2.1).
  • Kernel PlugIn: The Kernel PlugIn interrupt enable and disable functions were previously not called when using a 32-bit user-mode application with a 64-bit Kernel PlugIn driver(issue since v10.3.0).
  • Kernel PlugIn on Windows: Fixed BSOD as a result of disabling and enabling of the WinDriver kernel module while there is an enabled Kernel PlugIn driver.
  • Kernel PlugIn: Fixed the sample and DriverWizard generated C and C# PCI code to pass the correct context type from the user mode to the Kernel PlugIn driver, and fixed the context casting in the Kernel PlugIn high-IRQL legacy interrupts handler, to resolve a previous OS crash when receiving legacy interrupts(issue since v10.3.0).
  • Kernel PlugIn: Fixed a bug in the sample and DriverWizard generated Kernel PlugIn open functions, which previously resulted in an OS crash when opening a handle from the user mode to the Kernel PlugIn driver(issue since v10.3.0).

Obsolete Features

  • Stopped support for Windows 2000.

Version 10.3.0

Release Date 30.01.2011

New Features

  • Windows: Added a version of the WinDriver .NET API DLL (wdapi_dotnet.dll) for .NET Framework 4.0.
  • Linux: Added support for Linux kernel 2.6.37.

Enhancements

  • USB on Windows CE: Improved streaming performance.
  • PCI on Linux and Mac OS X: Implemented theWDC_GET_ENABLED_INT_LAST_MSGmacro, for retrieving the message data of the last received MSI/MSI-X interrupt.
  • USB on Windows: Added a .NET wrapper forWDU_SelectiveSuspend().
  • Kernel PlugIn (PCI on Windows, Linux, and Mac OS X): Added support for communicating with a 64-bit Kernel PlugIn from a 32-bit application. The changes include a newKP_INITstruct field (funcOpen_32_64), and improvements to the PCI Kernel PlugIn sample (kp_pci) and the DriverWizard Kernel PlugIn code generation.

Fixes

  • Windows:wdreg— fixed enabling/disabling of multiple devices in an INF file when encountering an error with one of the devices.
  • PCI on Linux x86_64: Fixed a crash during PCI read/write operations — for example, in calls toWD_Transfer(), or during the execution of interrupt transfer commands.
  • USB on 64-bit Windows: Fixed an OS crash when callingWDU_StreamGetStatus()from a 32-bit application.
  • Linux 2.4.x: Fixed the WinDriver build process(issue since v10.2.1).
  • USB on Windows: Fixed the behavior of isochronous write (OUT) streams with theUSB_ISOCH_NOASAPflag set.
  • Windows: Fixed the support for the Windows 7 WDK build options —win7andwin7_x64— in theddk_make.batbuild script. This also resolved related Kernel PlugIn build issues.(Issue since v10.2.1)
  • PCI on Windows:WDC_PciDeviceOpen()— fixed identification of PCI devices that were not registered with WinDriver(issue since v10.2.1).
  • Debug Monitor: Changed the default debug level of the command-line Debug Monitor utility —wddebug— toD_TRACE, to match the GUI Debug Monitor utility (wddebug_gui).
  • PCI on Mac OS X: Fixed an OS crash when reusing a DMA buffer for more than one transfer(issue since v10.2.0).
  • PCI on Linux 2.6.x: Fixed a possible kernel panic when allocating a contiguous DMA buffer.
  • PCI on Mac OS X: Fixed an OS crash when unregistering a Plug-and-Play / power-management PCI event(issue since v10.2.0).
  • USB on 64-bit Linux: Fixed infinite-timeout handling inWDU_Transfer().
  • PCI on Mac OS X: Fixed occasional calls to the user interrupt handler when no hardware interrupt had occurred.
  • PCI on Mac OS X: Fixed the value of the virtual kernel-mode mapped address returned byWDC_DMAContigBufLock(),WDC_SharedBufferAlloc(), andWD_DMALock(), for a contiguous DMA or shared buffer allocation.The fix resolved an OS crash when using the returned address in a data transfer.
  • PCI on Mac OS X: Fixed the detection of device memory regions.
  • PCI on Mac OS X and Windows CE: Added interrupt resource cleanup for devices that have not been explicitly closed by the application, as part of WinDriver’s application cleanup.
  • PCI: Fixed an application crash upon passing an invalid device handle toWDC_ReadXXX()orWDC_WriteXXX().
  • Windows Mobile ARMV4I: Fixed incorrect path to the WinDriver-API library in the sample and generated WinDriver Platform Builder projects, which caused the project build to fail(issue since v7.0.1).
  • PCI on 64-bit OSs: Fixed a memory leak caused by neglecting to unmap user-mode memory space from kernel mode when running 32-bit applications.
  • ISA/PCMCIA on Windows Vista and higher: Fixed an OS crash when callingWDC_IntDisable()for ISA/PCMCIA devices(issue since v9.2.0).
  • PCI on Mac OS X: Fixed handling of 64-bit DMA addresses.

Version 10.2.1

Release Date 01.09.2010

New Features

  • Added support for Windows Embedded Standard 7.
  • Linux: Added support for the Linux 2.6.30–2.6.35 kernels.

Enhancements

  • Windows: Added support for the Microsoft Visual Studio 2010 IDE.
  • Windows: Enhanced theddk_make.batbuild script, and the MS Visual Studio Kernel PlugIn sample and DriverWizard-generated projects:Added a build environment for Windows 7.Added support for the build options in versions 7600.x of the Windows Driver Kit (WDK).
  • Added a build environment for Windows 7.
  • Added support for the build options in versions 7600.x of the Windows Driver Kit (WDK).
  • PCI: Improved the performance ofWDC_PciDeviceOpen().

Fixes

  • DriverWizard (Windows): Fixed compilation of 32-bit applications, generated using the 64-bit Windows DriverWizard.
  • PCI on Linux PPC: Fixed the scan for PCI cards on Linux PPC kernel 2.6.23 and above, which previously resulted in problems locating all connected PCI cards and opening the cards using the WinDriver utilities(issue since v9.1.0).
  • Windows 64-bit: Fixed an internal race condition that caused occasional OS crashes when running 32-bit applications on 64-bit Windows platforms, including when powering off a USB device during the application’s execution.

Version 10.2.0

Release Date 07.06.2010

New Features

  • WinDriver PCI: Added support for PCI and PCI Express on Mac OS X10.5.x–10.6.x.

Fixes

  • Kernel PlugIn (Linux): Fixed the Linux DriverWizard code generation of Kernel PlugIn projects that contain upper-case letters in the project name.
  • Windows USB: Added definition of theUSB_ISOCH_RESETflag in the .NET and Delphi WinDriver USB APIs.
  • DMA (Linux PCI): Fixed Scatter/Gather DMA address calculation on Linux(issue since v9.2.1).
  • Windows: Fixed possible deadlock inThreadWait()when callback completion is not signaled properly(issue since v10.1.1).
  • Windows: Added driver signature for Windows Server 2008 and Windows 7.
  • PCI/PCMCIA/ISA on 64-bit operating systems: When running 32-bit applications on 64-bit platforms, the device registration — usingWDC_PciDeviceOpen()/WDC_PcmciaDeviceOpen()/WDC_IsaDeviceOpen(), orWD_CardRegister()— previously ignored the item registration options that were set in thedwOptionsfield of theWD_ITEMSstructures.

Version 10.1.1

Release Date 14.01.2010

Enhancements

  • Kernel PlugIn (Linux): Modified the distribution method for Linux Kernel PlugIn drivers, to allow distribution of the drivers without their source code.
  • Kernel PlugIn (Linux): Added support for building Kernel PlugIn drivers using thekbuildframework.
  • PCI: Added a newWDC_PciScanRegisteredDevices()function for scanning the PCI bus only for devices that have been registered to work with WinDriver.

Fixes

  • USB: Modified theusb_diag.csample and theusb_diag_lib.clibrary to support reading, writing, and reseting of pipes on inactive interfaces of a multi-interface device.
  • USB streaming: Modified the USB streaming API and theusb_diagsample to prevent attempts to perform stream transfers on the control pipe.
  • Linux: Fixed the support for the–enable-usb-support=noconfiguration option for WinDriver kernel module builds(issue since v10.0.0).
  • Linux and Windows installation: Fixed potential WinDriver installation crashes due to incorrect use of ACPI tables.
  • Windows USB: Fixed a potential OS crash when usingWDU_Transfer()to perform a data-pipe transfer with a non-NULL setup packet(issue since v10.0.0).
  • Windows USB: Fixed OS crash when issuing vendor or class USB control transfers withbRequest=0x09(issue since v10.0.0).
  • Windows USB: Fixed assignment of full-speed maximum-URB transfer sizes to high-speed USB devices.
  • PCI: Fixed OS crash when callingWDC_PciScanDevicesByTopology()for a malfunctioned PCI device(issue since v8.0.0).
  • PCI/PCMCIA/ISA: Fixed the definitions of theWDC_DBG_DBM_FILE_ERRandWDC_DBG_DBM_FILE_TRACEmacros.
  • USB streaming API: Calls toWDU_StreamRead()for a blocking stream would previously fail to return when the size of the data read from the device was larger than the remaining space in the stream’s data buffer(issue since v9.0.1).
  • Windows: Fixed occasional hangs when callingThreadWait()from an external DLL(issue since v7.0.0).
  • Windows USB streaming API: Reset the stream timer upon release of the stream buffer(issue since v9.0.1).

Version 10.1.0

Release Date 01.09.2009

New Features

  • Windows: Added support for Windows 7 and Windows Server 2008 R2 (32-bit and 64-bit).

Fixes

  • Windows USB: Fixed occasional lost packets in isochronous transfers when theUSB_ISOCH_NOASAPflag was not set(issue since v10.0.2).
  • Linux USB: Fixed execution of 32-bit WinDriver USB applications on 64-bit Linux platforms(issue since v9.2.1).

Version 10.0.2

Release Date 14.07.2009

New Features

  • Linux: Added support for the Linux 2.6.29 kernel.

Enhancements

  • Delphi (Windows USB): Added Delphi declarations, inwd_utils.pas, for theWDU_StreamXXX()USB streaming API.
  • PCI/PCMCIA/ISA: Removed the inclusion of thestatus_strings.hheader file fromwdc_defs.h, and instead, includedstatus_strings.hexplicitly from the relevant source files.

Fixes

  • DriverWizard (Windows PCI/PCMCIA/ISA): When generating code on Windows using a saved DriverWizard PCI/PCMCIA/ISA project, the generated INF file did not contain the device’s vendor and product IDs(issue since v9.0.1).
  • C# sample and generated USB code (Windows): Fixed a race condition that occurred when callingDeviceDetach()duringWDU_Init().
  • DMA (Linux PCI): Fixed problems in DMA handling, which resulted in occasional system crashes, on Linux kernels 2.6.25 and above(issue since v10.0.1).
  • DriverWizard (PCI/ISA): Fixed access violation in the DriverWizard ISA and virtual PCI device resource editing, which would occasionally cause DriverWizard to hang(issue since v9.0.1).
  • Interrupts: Fixed an issue with the lost-interrupts counter, which could result in repeated calls to the user’s interrupt handler even when no interrupts were generated.
  • USB (Windows): Fixed Windows OS crash when a single-blocking USB transfer returned due to timeout expiration(issue since v10.0.1).
  • USB (Windows CE): Fixed delays in the return ofWDU_StreamStop()andWDU_StreamClose(), on Windows CE(issue since v10.0.1).
  • DriverWizard (ISA): Previously, if an ISA card had both I/O BARs and other types of resources (memory BARs and/or an interrupt), the I/O resource information in the generated DriverWizard code was overwritten by the information of the other resources.
  • Linux: On some Linux distributions,make installfailed to load the WinDriver kernel modules, because the modules were not installed in the correct location(issue since v9.0.1).
  • DriverWizard: Added an error message when trying to use DriverWizard while the WinDriver kernel driver is not loaded(issue since v9.0.1).

Version 10.0.1

Release Date 01.04.2009

New Features

  • Linux: Added support for the Linux 2.6.28 kernel.
  • USB (Windows CE): Added support for USB streaming on Windows CE.

Enhancements

  • Linux: Thewindrvr6driver installation now verifies that the version of the driver matches that of the installedwindrvr6_usbdriver (if installed).
  • Windows USB: Added Selective Suspend support to theusb_diagsample and to the generated DriverWizard USB code.
  • Debug Monitor (Windows CE): Added support for GUI execution of thewddebugDebug Monitor utility on Windows CE, allowing for its usage on Windows CE platforms that do not have a command-line interface.
  • USB streaming API (Windows CE): Added a newUSB_STREAM_MAX_TRANSFER_SIZE_OVERRIDEflag toWDU_StreamOpen()for overriding the default maximum transfer size of read streams, on Windows CE.

Fixes

  • DriverWizard (PCI/PCMCIA/ISA): Interrupt Request (IRQ) numbers are now displayed in DriverWizard in decimal notation, to match the generated and sample code(issue since v9.0.0).
  • Interrupts (Linux): Upon failure to enable Extended Message-Signaled Interrupts (MSI-X), WinDriver will attempt to enable Message-Signaled Interrupts (MSI) instead(issue since v9.1.0).
  • Windows CE: Fixed corruption ofwdreg.exefor Windows CE ARMV4I platforms(issue since v9.0.0).
  • DMA (Windows): Fixed issue of incorrect data in DMA buffers after DMA transfer completion(issue since v9.2.1).
  • DriverWizard (Linux USB): Fixed DriverWizard identification of USB devices on some Linux distributions, such as newer Ubuntu distributions.
  • Windows: Fixed redundant driver installations when usingwdregwith the-compatoption to install a driver for multiple connected devices with the same hardware ID.
  • Windows: Modifiedwindrvr6.infto enable correct viewing using theNotepadWindows application(issue since v10.0.0).
  • Linux: Fixed the WinDriver Linux drivers installation when running “make install” from the root WinDriver directory(issue since v10.0.0).
  • PCI/PCMCIA/ISA: Fixed theWDC_DIAG_ReadWriteAddr()andWDC_DIAG_ReadWriteBlock()wdc_diag_libfunctions to correctly handleCancelinput; this fix affects thepci_diagandpcmcia_diagsamples and the generated DriverWizard code(issue since v7.0.0).
  • USB streaming API (Windows):WDU_StreamGetStatus()now returnsWD_TIME_OUT_EXPIREDin case of a timeout(issue since v9.0.0).

Version 10.0.0

Release Date 30.12.2008

New Features

  • Linux: Added support for the Linux 2.6.25–2.6.27 kernels.
  • Linux USB: Moved the WinDriver USB implementation for Linux to a separate driver module (windrvr6_usb) with a GNU General Public License (GPL).

Enhancements

  • Windows: Added official support for the Windows Server 2008 operating system.
  • Windows Vista: WinDriver was successfully tested with Service Pack 1 of Windows Vista.
  • Windows XP: WinDriver was successfully tested with Service Pack 3 of Windows XP.
  • PCI: Added enhanced support for the PLX 6466 bridge, including library APIs (plx_lib_6466) and a sample diagnostics application (p6466_diag).
  • Windows: Added support for the Microsoft Visual Studio 2008 IDE.
  • Windows: Enhanced theddk_make.batbuild script, and the MS Visual Studio Kernel PlugIn projects in the samples and in the generated DriverWizard code:Added a build environment for Windows Vista x64bit.Added support for the build options in version 6001 (and newer) of the Windows Driver Kit (WDK).
  • Added a build environment for Windows Vista x64bit.
  • Added support for the build options in version 6001 (and newer) of the Windows Driver Kit (WDK).

Fixes

  • USB: Fixed crashes when using DriverWizard and theusb_diagsample with multi-interface USB devices(issue since v9.2.1).
  • PCI Express (Linux 64-bit): Fixed the Virtex 5 sample diagnostics application (virtex5_diag); previously, on Linux 64-bit the sample always set the DMA buffer size to zero, regardless of user input(issue since v9.2.0).
  • Interrupts (Windows CE): Fixed a memory leak when enabling and disabling interrupts on Windows CE(issue since v9.0.0).
  • DriverWizard (Linux PPC 64-bit): Fixed opening of saved DriverWizard projects on 64-bit Linux PPC platforms.
  • PCI: The sample WinDriver PCI diagnostics application (pci_diag) now supports simultaneous opening of multiple Kernel PlugIn WDC device handles.
  • Windows: Returned thewdregwarning when trying to install or uninstall the Windows WinDriver kernel driver (windrvr6.sys) while there are open handles to this driver(issue since v9.0.0).
  • Windows: Fixed memory leaks in the WinDriver installation utility (wdreg).
  • DriverWizard PCI/PCMCIA/ISA: Fixed saving of register access modes in DriverWizard projects; previously, when opening a saved DriverWizard project, the access mode for any defined registers was set toRead/Write, regardless of the access mode that was originally defined.(Issue since v9.0.0)

Obsolete Features

  • Windows 98/Me: Removed Windows 98/Me files from the WinDriver distribution. (Support for Windows 98/Me was removed in v9.2.1).

Version 9.2.1

Release Date 03.07.2008

New Features

  • Linux: Added support for the Linux 2.6.24 kernel.
  • PCI/PCMCIA/ISA: Added aWDC_SharedBufferAlloc()function for allocating a shared user-mode and kernel-mode memory buffer — namely for the purpose of sharing data between a user-mode application and a Kernel PlugIn driver.

Enhancements

  • Debug Monitor (Windows Vista): Added inherent support for logging kernel debugger messages in the Debug Monitor (wddebug_gui/wddebug) on Windows Vista.
  • Kernel PlugIn (Windows Vista): Added a build environment for Windows Vista to the WinDriver Kernel PlugIn projects.

Fixes

  • Windows Vista: The WinDriver entries in the WindowsStartmenu were previously not removed when uninstalling WinDriver from Windows Vista.
  • Samples (Windows): Fixed compilation of the WinDriver samples using the MSDEV 6.0 IDE.
  • Kernel PlugIn (Windows XP): Fixed loading of the Kernel PlugIn samples on Windows XP(issue since v9.2.0).
  • Windows XP Embedded: Modified WinDriver’s installation using the XP Embedded WinDriver component (windriver.sld) to ensure that WinDriver is loaded after the OS drivers.
  • USB (Windows): Fixed an occasional driver crash when plugging out a USB device immediately after it has been plugged in.
  • USB (Windows CE): Fixed handling of multi-interface USB devices on Windows CE.
  • Windows:wdregwould occasionally hang when used to install multi-device INF files that contain more than 15 devices.
  • Fixed execution of 32-bit applications on 64-bit architectures(issue since v9.1.0).
  • Windows: Thewdreginstallcommand would sometimes pre-install multi-device INF files even if one or more of the devices were connected to the host.
  • Windows: Fixed incorrectwdregstatus reports for installation and uninstallation of multi-device INF files(issue since v8.1.1).
  • DriverWizard (Windows): Fixed the hardware IDs in the generated DriverWizard INF files for virtual PCI devices(issue since v9.0.0).
  • Interrupts (Windows): Updated the Delphi and VB 6.0 interrupt APIs to support Message-Signaled Interrupts (MSI) and Extended Message-Signaled Interrupts (MSI-X)(issue since v9.1.0).
  • Kernel PlugIn: Fixed a compilation error in the Xilinx Virtex 5 PCI Express sample (kp_vrtx5)(issue since v9.2.0).
  • Windows: Fixed the Partners Libraries links in theStartWindows WinDriver menu.

Obsolete Features

  • Stopped support for Windows 98/Me.
  • USB: Stopped support for USB on Linux PPC platforms.

Version 9.2.0

Release Date 20.02.2008

Enhancements

  • DriverWizard (PCI): Added support for Message-Signaled Interrupts (MSI) and Extended Message-Signaled Interrupts (MSI-X), including GUI indications, INF file generation, and user-mode and Kernel PlugIn code generation.
  • PCI Express: Added a Kernel PlugIn sample for the Xilinx Virtex 5 PCI Express chip with Bus Mastering DMA Validation Design (BMD) firmware (kp_vrtx5) and modified the Virtex 5 BMD library (virtex5_lib) to support the new sample. The sample demonstrates Kernel PlugIn handling of Message-Signaled Interrupts (MSI) or Extended Message-Signaled Interrupts (MSI-X).
  • Interrupts (Linux): Added support for IRQ 0 on PowerPC Linux platforms.
  • Interrupts (Windows CE): Modified the WinDriver interrupt handler to correctly handle shared PCI interrupts.
  • Interrupts: The WinDriver interrupt handler was modified to claim ownership of non-shared interrupts, regardless of the interrupt transfer commands.

Fixes

  • Kernel PlugIn (Linux): Fixed loading of Kernel PlugIn drivers on Linux(issue since v9.1.0).
  • USB (Linux): A massive load of USB transfer requests on Linux would, on occasion, result in an incorrect transfer timeout error(issue since v9.0.0).
  • USB (Windows): Fixed release of USB devices detached during standby mode on Windows(issue since v9.1.0).
  • USB (Windows): Fixed Windows crash as a result of abnormal termination of a user-mode WinDriver USB application when listening to a bulk pipe using the streaming API(issue since v9.0.1).
  • ISA interrupts: Restored support for ISA interrupts(issue since v9.1.0).
  • Linux: Resolved WinDriver 64-bit Linux installation crash(issue since v9.1.0).
  • Kernel PlugIn (Linux): Modified the Linux Kernel PlugInfree()function implementation to comply with the method used by the Kernel PlugInmalloc()implementation(issue since v9.1.0).

Version 9.1.0

Release Date 12.12.2007

New Features

  • PCI interrupts: Added support for Message-Signaled Interrupts (MSI) and MSI-X on Windows Vista and Linux.
  • PCI Express: Added enhanced support for the Xilinx Virtex 5 PCI Express chip with Bus Mastering DMA Validation Design (BMD) firmware, including library APIs (virtex5_lib) and a sample application (virtex5_diag). The sample demonstrates DMA and Message-Signaled Interrupts (MSI) handling.
  • Linux: Added support for the Linux 2.6.22 and 2.6.23 kernels.
  • Windows XP Embedded: New Windows XP Embedded WinDriver component (windriver.sld) for automatic driver installation on Windows XP Embedded platforms.

Fixes

  • USB (Linux): Control transfers with no data on Linux previously failed with an invalid parameter error(issue since v9.0.1).
  • USB (Linux): Fixed problems withWDU_Transfer()write (OUT) transfers using large data buffers on Linux(issue since v9.0.1).
  • USB (Windows): Control requests of type ‘class’ with recipient ‘other’ were previously transferred as vendor requests.
  • Linux: Fixed installation of renamed WinDriver kernel modules using thewdregscript(issue since v9.0.0).
  • Linux: Fixed WinDriver configuration issues with the openSUSE 10.2 Linux distribution.
  • Linux: Fixed WinDriver configuration issues with the UBUNTU 7.1.0 Linux distribution.
  • Linux: Added support forOS_get_device_propertyfor WinDriver kernel module builds with theenable-usb-support=noconfiguration option(issue since v9.0.0).
  • DMA: FixedWD_DMALock()64-bit addresses handling on 32-bit Windows and Linux platforms(issue since v8.0.0).
  • DMA (Linux): Fixed memory leak when locking contiguous DMA buffers on Linux platforms(issue since v8.1.0).
  • Kernel PlugIn (Linux): Resolved Kernel PlugIn memory allocation issues on some embedded Linux 2.6 distributions(issue since v7.0.0).
  • DriverWizard (Linux): DriverWizard for Linux is now statically linked with the QT libraries, enabling usage of the wizard on these operating systems regardless of whether the QT libraries have been installed on the target platform(issue since v9.0.0).
  • PCI (Windows and Windows CE): AddedWDC_PciScanDevicesByTopology()to the WinDriver-API DLL (wdapi.dll) exports(issue since v8.0.0).
  • Fixed the CCString::Format class method to correctly support large strings; as a result, fixed issue with longwdreglog messages on Windows.

Version 9.0.1

Release Date 13.06.2007

New Features

  • Linux: Added support for the Linux 2.6.20 and 2.6.21 kernels.
  • USB Streaming API: Added a new function for retrieving a stream’s current status —WDU_StreamGetStatus().

Enhancements

  • USB: Added stream transfers performance tests to the WinDriver USB diagnostics sample (usb_diag).
  • DriverWizard PCI: The device Plug-and-Play information is now verified when opening existing DriverWizard PCI projects.
  • DriverWizard GUI: Added support for displaying DriverWizard in full screen mode in resolutions higher than 1024 x 768(issue since v9.0.0).
  • DriverWizard: Added support for using DriverWizard with non-English Windows installations.
  • DriverWizard: Improved the support for keyboard commands(issue since v9.0.0).
  • Kernel PlugIn: Added digital signature of the sample Windows Kernel PlugIn PCI driver —kp_pci.sys— allowing for a smooth installation of the driver on Windows platforms that prohibit or limit installation of unsigned drivers (e.g., Vista x64).
  • USB Streaming API: Added a newWDU_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: EnhancedWDU_Transfer()to enable initiation of zero-length transfers by either setting the buffer size to zero or passing a NULL buffer pointer.
  • DriverWizard: Added miscellaneous GUI improvements.

Fixes

  • Windows 98: Fixed the driver installation on Windows 98 platforms(issue since v9.0.0).
  • Windows: Fixed compilation of projects containing the UNICODE preprocessor definition(issue since v9.0.0).
  • PCI/PCMCIA/ISA: Fixed compilation of generated code with no transfer commands(issue since v9.0.0).
  • DriverWizard PCI/PCMCIA/ISA: Fixed DriverWizard crash when generating code for devices with no interrupts(issue since v9.0.0).
  • Linux PCI: Fixed Scatter/Gather DMA lock for buffers that are not page aligned(issue since v6.2.0).
  • PCI/PCMCIA/ISA:WDC_Version()can now be called before callingWDC_DriverOpen()(issue since v7.0.0).
  • USB Streaming API: Fixed streaming API cleanup in the case of abnormal application termination(issue since v9.0.0).
  • USB Streaming API: Fixed zero-length transfer crash(issue since v9.0.0).
  • DriverWizard USB: Previously write to pipe would occasionally result in modification of the input data(issue since v9.0.0).
  • DriverWizard USB: Fixed INF generation for multiple-interface devices(issue since v9.0.0).
  • PLX: Fixed the local base address used for master devices in the PLX library(issue since v7.0.0).
  • PCI/PCMCIA/ISA Interrupts: Fixed the return value ofWD_IntWait().
  • Fixed exit cleanup of 32-bit applications on 64-bit architectures(issue since v6.0.0).
  • USB: Enabled use ofWDU_GetDeviceRegistryProperty(),WDU_GetDeviceAddr(), andWD_GetDeviceProperty()from 32-bit applications running on 64-bit architectures.
  • DriverWizard ISA: Fixed DriverWizard code generation crash(issue since v9.0.0).
  • Windows: Modified thewdreginstallation utility to load the Driver Install Frameworks API (DIFxAPI) DLL only when the program is run without the-compatflag(issue since v8.1.0).
  • Windows: Modified thewdreginstallation utility to avoid automatic rescan for new hardware when installing the WinDriver kernel module (windrvr6.sysor a renamed version of this driver).(Issue since v8.1.0)
  • DriverWizard PCI/ISA: Added support for opening legacy DriverWizard projects created with earlier versions of WinDriver(issue since v9.0.0).
  • Windows Mobile 5: Fixed the DriverWizard project files code generation(issue since v8.0.1).
  • .NET PCI/PCMCIA/ISA: Modified the WinDriver .NET API DLL (wdapi_dotnet.dll) in order to prevent the garbage collector from relocating transfer commands used for interrupt handling while the interrupt is enabled(issue since v7.0.0).
  • USB: Modified the Silicon Laboratories C8051F320 sample (c8051f320_diag) to support buffer sizes that are not multiples of 4KB.
  • Windows CE 6.0: Fixed prioritization of interrupts and events(issue since v9.0.0).

Version 9.0.0

Release Date 27.03.2007

New Features

  • Windows USB: Added streaming API to support synchronous and asynchronous stream transfers on Windows 2000 and higher.
  • Windows CE: Added support for Windows Embedded CE 6.0.0 and Windows Mobile 6.0.
  • Linux: Added support for the Linux 2.6.18 and 2.6.19 kernels.
  • Driver distribution: Added support for changing the name of the WinDriver kernel module on Windows, Linux, and Solaris.
  • Windows USB: Integrated the Ellisys Explorer 200 USB bus analyzer into DriverWizard.
  • USB on Windows: Added support for selective bus suspend on Windows XP SP2 and higher — newWDU_SelectiveSuspend()function.
  • USB on Windows: Added support for port cycling — i.e., device re-enumeration without a physical reset — to theWDU_ResetDevice()function (newCYCLE_PORTflag).
  • PCI/PCMCIA/ISA: Added a newWDC_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 thewdreginstallation 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 theWD_ITEM_DO_NOT_MAP_KERNELflag 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.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 errorWD_USB_DESCRIPTOR_ERROR.
  • Windows USB: Fixed the maximum size of USB interrupt and bulk (Windows Vista) transfers (previously limited to 4KB).

Known Limitations

  • Windows 98/Me: DriverWizard cannot be used to develop a driver on Windows 98/Me.However, a driver developed on Windows 2000 or higher can still be distributed to a Windows 98/Me PC.

Version 8.1.1

Release Date 17.10.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_libanduss2828_diag_lib) and a sample application for the device’s default firmware (default_firmware_sample).

Enhancements

  • Windows Vista: WinDriver was tested on Windows Vista Beta2, RC1 and RC2 (x86 and x64).
  • USB: Improved the USB sample (usb_diag) and generated DriverWizard code.
  • Windows: Improved thewdreginstallation utility by utilizing the Driver Install Frameworks API (DIFxAPI) for driver installation, pre-installation and uninstallation.
  • USB (Windows): AddedWDU_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).
  • DMA: Improved the performance of the DMA synchronization functions (WD_DMASyncCpu()/WD_DMASyncIo()/WDC_DMASyncCpu()/WDC_DMASyncIo()).
  • PCI Express: Added support for configuration spaces that are mapped beyond 4GB.
  • USB (Linux): Enhanced the Cypress EZ-USB API, including multiple devices support and a new EZ-USB diagnostics library (ezusb_diag_lib).
  • New ISA sample: Added sample for the Intel 8253/8254 programmable timer chips (available on any IBM PC).

Fixes

  • Linux PCI: Fixed 64-bit memory block transfers on 32-bit x86 Linux architectures.
  • Windows PCI: Avoid usage of pageable memory in interrupt.
  • Linux: Fixed installation problem on some Linux 2.6.15 kernels.
  • Backward compatibility (PCI): Fixed the ability to use old WinDriver PCI applications with a newer WinDriver kernel module(issue since v8.0.0).
  • Windows CE: Fixed compilation of applications that use the enhanced interrupts option.
  • DMA: Fixed the AMCC library’s DMA API (WinDriver/amcc/lib/amcclib.c).
  • VB.NET (Windows): Fixed automatic insertion of the WinDriver license registration string into the generated VB.NET DriverWizard code.
  • Windows USB: Re-plugging a USB device immediately after unplugging it could previously result in a crash.
  • Linux and Solaris: Implemented fixes that were already added for Windows / Windows CE in version 8.0:Kernel PlugIn: Fixed memory leak in Kernel PlugIn initialization.Kernel PlugIn: Interrupts are now automatically disabled when an application is aborted.DMA: Fixed DMA handling for 32-bit applications running on 64-bit architectures (Linux AMD64 / Solaris SPARC64).
  • Kernel PlugIn: Fixed memory leak in Kernel PlugIn initialization.
  • Kernel PlugIn: Interrupts are now automatically disabled when an application is aborted.
  • DMA: Fixed DMA handling for 32-bit applications running on 64-bit architectures (Linux AMD64 / Solaris SPARC64).

Version 8.1.0

Release Date 15.08.2006

New Features

  • Added support for Windows Vista Beta 2 (and later) for x86 and x64.
  • Windows: Added a WinDriver symbol file (windrvr6.pdb) to the WinDriver distribution, required for getting your driver digitally signed with Microsoft’s Windows Hardware Quality Labs (WHQL).
  • WinDriver USB Device (Firmware Development Kit): Added support for compiling Microchip PIC18F4550 firmware with version 3.04 of the MCC18 compiler.

Enhancements

  • DMA: Improved the performance of the DMA synchronization functions (WD_DMASyncCpu()/WD_DMASyncIo()/WDC_DMASyncCpu()/WDC_DMASyncIo()).
  • PCI Express: Added support for configuration spaces that are mapped beyond 4GB.
  • USB: Enhanced the Cypress EZ-USB API, including multiple devices support and a new EZ-USB diagnostics library (ezusb_diag_lib).
  • Windows: Improved thewdreg.exeinstallation 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 thewdapi.libWinDriver-API library.

Fixes

  • Kernel PlugIn: Fixed memory leak in Kernel PlugIn initialization.
  • Kernel PlugIn: Interrupts are now automatically disabled when an application is aborted.
  • Windows USB: Fixed handling of isochronous transfers for buffers smaller than 8 bytes.
  • Windows USB: Issuing a read (IN) control command with no data stage from DriverWizard previously blocked.
  • Windows CE USB: Disabling of shared interrupts no longer affects other drivers listening to the shared interrupt.
  • Windows CE USB: Fixed reset pipe toggle mismatch issues.
  • DMA: Fixed DMA handling for 32-bit applications running on 64-bit architectures(issue since v8.0.0).
  • Windows PCI: Multi-transfer functions (WD_MultiTransfer()/WDC_MultiTransfer()) now also handle mask commands (CMD_MASK) when called from 32-bit applications that are run on 64-bit architectures(issue since v8.0.0).

Obsolete Features

  • Stopped support for Windows NT 4.0.
  • Linux: Stopped support for the Intel Itanium and Itanium 2 architectures (IA64).

Version 8.0.2

Release Date 06.06.2006

New Features

  • Added support for Windows Mobile 5.0.
  • Linux: Added support for kernels 2.6.14–2.6.16.
  • WinDriver USB Device (Firmware Development Kit): Added support for the Silicon Laboratories C8051F340 development board.
  • Windows CE: Added a WinDriver component to the Platform Builder catalogue to simplify the driver deployment.
  • WinDriver USB Device (Firmware Development Kit): Added support for compiling Microchip PIC18F4550 firmware with version 3.0 of the MCC18 compiler.

Enhancements

  • PCI/PCMCIA/ISA: Improved the performance ofWD_Transfer()andWD_MultiTransfer()and the WDC APIs that use these functions (WDC_Read/WriteXXX(),WDC_AddrXXX()andWDC_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 ofWD_Sleep()for small sleep values.

Fixes

  • PCI/PCMCIA/ISA: Fixed and improved the clean-up functionality: Improved the performance ofWD_CardCleanup()/WDC_CardCleanupSetup()and ensured that the clean-up commands set in the calls to these functions are executed as the first thing upon termination of a WinDriver application.
  • DMA: Fixed locking of unaligned Scatter/Gather DMA buffers on Linux.
  • Windows 64-bit: Fixed DMA and interrupt issues when running 32-bit applications on 64-bit systems(issue since v8.0.0).

Version 8.0.1

Release Date 04.04.2006

Enhancements

  • USB on Windows CE: Added support forWDU_ResetDevice()on Windows CE 5.0.
  • .NET USB (Windows): Added support for simultaneous communication with multiple interfaces on the same USB device.
  • Windows: The PCI Express configuration space can now be accessed even if no INF file has been installed for the device.
  • Windows: Improved handling of devices with resources filtered by an INF file or a filter driver.
  • Solaris: Theremove_windrvrWinDriver uninstallation script now removes all installation traces from theinstall_windrvrinstallation script.
  • Linux: Added anautooption to thewdregdriver script utility to enable automatic detection of udev support on the target platform.

Fixes

  • DMA: Fixed usage of the DMA synchronization functions (WD_DMASyncIo()/WDC_DMASyncIo()/WD_DMASyncCpu()/WDC_DMASyncCpu()) from 32-bit applications running on 64-bit kernels (Windows x64 / Linux x86_64 / Solaris SPARC64).
  • Linux: Fixed WinDriver installation on some Linux 2.4 kernels(issue since v8.0.0).
  • PCMCIA (Windows): Fixed behavior ofWDC_PcmciaSetWindow()(issue since v7.0.0).
  • .NET (Windows): Fixed PCI events handling under .NET Framework 2.0(issue since v8.0.0).
  • .NET (Windows): Fixed the .NET implementation of theWDU_GetLangIDs()andWDU_GetStringDesc()functions.
  • .NET (Windows): Fixed the PLX MSDEV 2003 .NET solution file(issue since v8.0.0).
  • .NET (Windows): PCI C# sample — fixed the behavior ofPCI_Device::Open()in the event of an error(issue since v8.0.0).

Version 8.0.0

Release Date 21.02.2006

New Features

  • Windows: Added support for Windows XP Pro x64 and Windows Server 2003 x64 on the AMD64 and Intel EM64T architectures (“x64”).
  • Windows: Added support for Visual Studio 2005 on x86 and AMD64, including sample and generated DriverWizard C, C# and Visual Basic .NET projects. Note: As a result of this addition, the directories structure of the WinDriver C and .NET sample and generated DriverWizard projects has changed.
  • Linux: Added support for the Intel Itanium and Itanium 2 architectures (IA64).
  • Linux: Added support for Linux 2.6.14.
  • Solaris: Added support for Solaris 10 and OpenSolaris.
  • WinDriver USB Device (Firmware Development Kit): Added support for development of device firmware for the Philips PDIUSBD12.
  • WinDriver USB Device (Firmware Development Kit): Added mass storage class support for the Microchip PIC18F4550 development board.
  • .NET (Windows): Added DriverWizard code generation in C# (USB and PCI) and Visual Basic .NET (USB).
  • .NET (Windows): Added a .NET PCI sample in C#.
  • USB: Added samples for the Philips PDIUSBD12.

Enhancements

  • Windows USB: Added support for simultaneous communication with multiple interfaces on the same USB device.
  • DMA: Added support for 64-bit DMA addresses on Windows, Linux and Solaris (newDMA_ALLOW_64BIT_ADDRESSDMA flag).
  • .NET (Windows): Added support for communication with a Kernel PlugIn driver from a .NET application, includingNewWDC_KernelPlugInOpen()function for opening a handle to a Kernel PlugIn driver.Added DriverWizard code generation of user-mode applications that communicate with a Kernel PlugIn driver.Modified the PLX .NET library APIs to support communication with a Kernel PlugIn driver.
  • NewWDC_KernelPlugInOpen()function for opening a handle to a Kernel PlugIn driver.
  • Added DriverWizard code generation of user-mode applications that communicate with a Kernel PlugIn driver.
  • Modified the PLX .NET library APIs to support communication with a Kernel PlugIn driver.
  • DriverWizard: Added option to call the generated DriverWizard read/write registers functions from the Kernel PlugIn.
  • Added versioning of the WinDriver libraries, DLLs and shared objects.This change required the following file name changes:wd_utils.dll–>wdapi.dll(e.g.,wdapi800.dll)libwd_utils.so–>libwdapi.so(e.g.,libwdapi800.so)wdapi_dotnet.dll–>wdapi_dotnet.dll(e.g.,wdapi_dotnet800.dll)kp_nt.lib–>kp_nt.lib(e.g.,kp_nt800.lib)kp_linux.o–>kp_linux.o(e.g.,kp_linux800.o)kp_solaris.o–>kp_solaris.o(e.g.,kp_solaris800.o)
  • wd_utils.dll–>wdapi.dll(e.g.,wdapi800.dll)
  • libwd_utils.so–>libwdapi.so(e.g.,libwdapi800.so)
  • wdapi_dotnet.dll–>wdapi_dotnet.dll(e.g.,wdapi_dotnet800.dll)
  • kp_nt.lib–>kp_nt.lib(e.g.,kp_nt800.lib)
  • kp_linux.o–>kp_linux.o(e.g.,kp_linux800.o)
  • kp_solaris.o–>kp_solaris.o(e.g.,kp_solaris800.o)
  • Moved the location of WinDriver’s source files under the WinDriver installation directory:The WinDriver C source files were moved from thesrcdirectory to thesrc/wdapidirectory.The WinDriver .NET source files were moved from thewdapi.netdirectory to thesrc/wdapi.netdirectory.
  • The WinDriver C source files were moved from thesrcdirectory to thesrc/wdapidirectory.
  • The WinDriver .NET source files were moved from thewdapi.netdirectory to thesrc/wdapi.netdirectory.
  • DMA: Added support for locking bi-directional DMA buffers (newDMA_TO_FROM_DEVICEDMA flag).
  • PCI: Added option to scan the PCI bus by topology (newWD_PCI_SCAN_BY_TOPOLOGYflag andWDC_PciScanDevicesByTopology()function).
  • Solaris: Added support for allocation of a contiguous DMA buffer that is not associated with a specific card (already supported on other OSs).

Fixes

  • USB: Fixed set interface to the same alternate setting number as the active alternate setting but with a different interface.
  • USB on Windows:WDU_Transfer()andWDU_TransferIsoch()do not allow zero-sized transfers on isochronous pipes.
  • USB on Windows: Fixed situation whereby Windows restarted when waking up from a hibernation state that was entered into while listening on an isochronous pipe.
  • WinDriver USB Device (Firmware Development Kit): Fixed double buffering in the Microchip PIC18F4550 code.
  • Delphi (Windows): Fixed and improved the sample and generated Delphi code.
  • Linux: Prevent removal of a Kernel PlugIn driver while it is being used by an application.
  • Linux: Improved the support for IOMMU mapped DMA buffers.
  • Interrupts: Fixed interrupt masking so that the execution of the deferred interrupt processing is dependent on the result of the mask commands(issue since v7.0.2).

Version 7.0.2

Release Date 01.11.2005

New Features

  • WinDriver USB Device (Firmware Development Kit): Added support for the Microchip PIC18F4550 development board.
  • PCI interrupts: Added option to define an interrupt mask in the kernel-mode interrupt transfer commands.
  • USB Microchip PIC18F4550 development board:Added abootloader_demosample, 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).
  • Added abootloader_demosample, 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*.wdpfiles 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 newWD_ITEM_ALLOW_CACHEflag.
  • 64-bit Linux and Solaris: Added a 32-bit version of thewd_utilsshared 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) anddefault_firmware_demosample 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, usingWD_Sleep(), was reduced to a minimum.
  • Windows: Eliminated error messages that appeared when running Microsoft’s Driver Verifier utility (verifier.exe) together with WinDriver.
  • .NET (Windows): Added thewdapi_dotnet.cppfile to thewdapi_dotnetDLL’s project file (wdapi_dotnet.vcproj).
  • .NET (Windows): C# .NET PLX library project file (plx_lib.csproj) fixed to point tolog.csinstead ofdiag_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.exenow enables replacing an older version of WinDriver without first uninstalling the oldwindrvr6.sysdriver.

Version 7.0.1

Release Date 09.08.2005

New Features

  • .NET (Windows):Added a new .NET managed extensions for C++ WinDriver DLL (wdapi_dotnet.dll).Added a new PLX .NET C# DLL (plx_lib_dotnet.dll) and GUI sample (PLX_Sample).Added a new USB .NET C# DLL (usb_lib_dotnet.dll).
  • Added a new .NET managed extensions for C++ WinDriver DLL (wdapi_dotnet.dll).
  • Added a new PLX .NET C# DLL (plx_lib_dotnet.dll) and GUI sample (PLX_Sample).
  • Added a new USB .NET C# DLL (usb_lib_dotnet.dll).
  • USB: Added sample for the Microchip PIC18F4550 development board.
  • WinDriver USB Device (Windows): Added framework for vendor control requests in the sample and generated code.
  • Solaris: Added API for performing CPU and I/O caches DMA synchronization.
  • Kernel PlugIn (PCI/ISA) on Solaris: Added synchronization APIs, which include spinlocks and interlocked operations, for single and multiple CPU systems.

Enhancements

  • Windows CE: The generated DriverWizard code now also includes Platform Builder 5.0 XML project files.
  • Solaris and Windows CE: Modified and improved the samples and generated DriverWizard code in accordance with the Windows and Linux sample and generated code, including use of the newwd_utilsDLL/shared object and theWDCAPI.
  • Linux and Solaris: Added thewd_utilsmakefile to the WinDriver distribution.
  • Windows: Modified and improved the .NET USB C# and Visual Basic samples. The samples now use the newwdapi_dotnet.dllandusb_lib_dotnet.dllDLLs, which replaced thewdnetlib.dllDLL from v7.0.0 of WinDriver (see the New Features).
  • PCI/PCMCIA/ISA: The generated DriverWizard C code now defines an enumeration of all local registers defined in the wizard and includes functions for reading and writing these custom registers.
  • PLX: Modified thePLX_DMAStart()library function to enable repeated continuous use for Scatter/Gather DMA.
  • Improved sample and generated DriverWizard C source code and makefiles to facilitate code porting across the supported operating systems.

Fixes

  • WinDriver USB Device (Windows): Fixed bulk data toggle synchronization (originated in v7.0.0).
  • USB on Linux: Fixed high-speed isochronous transfers.
  • USB on Linux 2.4: Fixed interrupt transfer mechanism.
  • USB on Windows: FixedWDU_Transfer()to enable writing read-only data buffers to the device.
  • USB on Windows: Diminish effects of bad firmware by eliminating system halts and crashes in cases of invalid device descriptors.
  • Windows CE: Enable access to the main thread’s memory space from other threads in the process (including from the interrupt handler).
  • PCI/PCMCIA/ISA: Added a newWDC_CardCleanupSetup()function and replaced thepDeviceCleanupparameter ofWDC_xxxDeviceOpen()with areservedparameter (originated in v7.0.0).
  • USB on Linux: Fixed support for multiple-interface USB devices.
  • PCI/PCMCIA/ISA: Avoid use of global handles in the generated DriverWizard code andpci_diagandpcmcia_diagsamples.
  • Windows 2k/XP/Server 2003: Enable “Start Device” mechanism on all platforms.
  • wd_utils: Eliminated previous dependency onwindrvr_hotswap.cAPIs (originated in v7.0.0).
  • USB: Minor fixes to the sample and generated USB code;main()now returns a relevant error code in case of a failure.
  • Fixed link errors when attempting to build the sample and generated DriverWizard C code in C++ mode.
  • Windows 98/Me: Fixed WinDriver registration licenses (originated in v7.0.0).
  • PCI/PCMCIA/ISA: Fixed generated DriverWizard C interrupt code. Previously the code always used the first register assigned to the interrupt in the wizard (originated in v7.0.0).
  • USB on Windows: Fixed rare crash that could occur when a device was unplugged immediately after being plugged-in.
  • USB on Windows CE: Prevent possible situation of inability to access USB devices if the device was connected to the target platform before Windows CE was loaded (originated in v6.2.3).
  • USB on Windows: Fixed compatibility issue with the old WinDriverWD_UsbScanDevice()function, whereby the function returned the actual interface number when it should have returnedWD_SINGLE_INTERFACE(originated in v7.0.0).
  • USB on Windows: Fixed system halt that previously occurred if the transfer timed-out before the actual transfer began.
  • Windows CE:WD_DMALock()previously failed when called for cards that have not been registered with the PCI bus driver in the registry (originated in v6.2.3).
  • USB on Windows: DriverWizard previously identified USB devices that have been registered with WinDriver as not configured to work with WinDriver if the device was being used when the wizard created the devices list.
  • DriverWizard: Fixed bug whereby if multiple register access commands to the same register were assigned to the interrupt in the wizard, only the last command was saved in the*.wdpDriverWizard project.
  • DriverWizard: Fixed parallel port code generation (originated in v7.0.0).

Version 7.0.0

Release Date 26.04.2005

New Features

  • WinDriver USB Device (Windows): Added support for development of device firmware for the Cypress EZ-USB FX2LP CY7C68013A and the Silicon Laboratories C8051F320 development boards.
  • Added support for accessing the PCI Express extended configuration space.
  • Linux: Added support for x86 64-bit architectures: AMD64 and Intel EM64T (“x86_64”) on Linux 2.6.x kernels.
  • Linux PowerPC: Added support for the Linux 2.6.x kernels.
  • WinDriver Card (WDC) Library: New convenience wrapper APIs that simplify the development for PCI/PCMCIA/CardBus/ISA/ISAPnP/EISA/CompactPCI and PCI Express devices.
  • Windows: Added .NET USB samples in C# and Visual Basic .NET.
  • PCI/PCMCIA: Added API for performing CPU and I/O caches DMA synchronization.
  • PCMCIA (Windows): Added API for modifying the settings of the PCMCIA bus controller.
  • Kernel PlugIn (PCI/ISA/PCMCIA): Added synchronization APIs, which include spinlocks and interlocked operations, for single and multiple CPU systems.

Enhancements

  • Windows: Improved WinDriver’s installation and uninstallation procedures.
  • Use thewd_utilsDLL (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 previouskptestKernel PlugIn sample).Improved the generated DriverWizard C code.Modified the generic PCI C samples (pci_diag,pci_scan,pci_dump).
  • 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 previouskptestKernel 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()/ theWDCread/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 whenWDU_Transfer()/WDU_TransferIsoch()was called with theUSB_ISOCH_NOASAPflag (bug since v6.2.3).
  • USB (Windows): Isochronous pipes listen from DriverWizard, or using theusb_diagsample or generated DriverWizard code, previously failed for some USB host controllers and on high-speed devices.
  • USB: Theusb_diagsample and generated DriverWizardDeviceAttach()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 7.0.0

Release Date 21.03.2005

Version 6.2.3

Release Date 09.11.2004

Enhancements

  • PCMCIA: Added implementation of writing to PCMCIA attribute space.

Fixes

  • Windows USB: ImprovedSET_INTERFACEcommand mechanism.
  • Windows USB: Improved compliancy with Windows USBD driver enablement mechanism.
  • Windows USB: Added support for USB device disconnection during the enumeration stage.
  • HID: Improved read mechanism by allowing read requests with no time limitation.
  • Windows: Improved compatibility with Microsoft’s WHQL tests mechanism.

Version 6.2.2

Release Date 17.08.2004

New Features

  • Added support for Windows CE 5.0.
  • Added support for USB 2.0.

Enhancements

  • Improved Plug-and-Play support.
  • Samples: All samples completely support Platform Builder.
  • Improved interrupt latency.
  • USB: Significantly improved isochronous handling for USB 1.1 and 2.0.
  • USB: Support permanent registration of USB devices in the registry.

Version 6.2.2

Release Date 26.07.2004

New Features

  • Added support for PowerPC on Linux 2.4.
  • Added enhanced USB support for Silicon Laboratories’ C8051F320 USB board.
  • Added support for PCMCIA cards on Windows 2000/XP/Server 2003.

Enhancements

  • Linux: New installation mechanism, which creates a makefile based either on the user’s specific running kernel or on another installed kernel source, according to the user’s specification.
  • Debug: Added anAll sectionscheck 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 forDMA_LARGE_BUFFERin the samples.
  • Wizard (PCI/PCMCIA/ISA): Added display of the offset for each register.
  • USB: Added newWDU_GetLangIDs()API function, which returns the supported language IDs and/or the number of supported language IDs of a device.
  • USB: Added newWDU_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 backward compatibility problem.

Version 6.2.1

Release Date 12.05.2004

Enhancements

  • PCI/ISA: Added an API to enable cards cleanup handling upon an application’s termination.
  • Debugging: Simplified usage of console-mode WDDEBUG.
  • DMA: Allow increased contiguous buffer size.
  • Windows: Improvedwdreg.exeinstallation utility.

Fixes

  • USB: Fixed multi-interface USB device INF generation and installation/uninstallation from DriverWizard.
  • 64-bit platforms: The wizard now correctly displays the I/O resources of PCI devices.
  • Linux: Previously had problem locking DMA for reading.
  • All Platforms: Improved access to PCI configuration space and reduced overhead.
  • Windows USB: Resolved previous crash in the case of shortage in memory resources. WinDriver now exits and sends an error message.
  • Solaris: Fixed crash that occurred when versions of Kernel PlugIn and WinDriver did not match.
  • Linux: Previously older versions of Linux distribution did not support WinDriver graphics.

Version 6.2.0

Release Date 16.03.2004

New Features

  • Support for 32-bit and 64-bit Solaris 8-9 on SPARC.
  • Support for 32-bit Solaris 8-9 on x86.
  • Support for 32-bit user applications on 64-bit Solaris kernel.
  • Support for Linux kernel 2.6.
  • Added the option to start developing your driver before your PCI hardware is available.
  • Added basic API logging capabilities from the wizard.
  • Added enhanced USB support for Texas Instruments’ TUSB3410, TUSB3210, TUSB2136 and TUSB5052 chips (download firmware samples).

Enhancements

  • USB: Significantly improved isochronous handling for USB 1.1 and 2.0.
  • SPARC Solaris DMA: Added support for Scatter/Gather DMA and mapping of contiguous kernel buffer to user mode on SPARC platforms.
  • x86 Solaris DMA: Added support for Scatter/Gather DMA and contiguous-buffer DMA on x86 platforms.
  • Windows: Improved power management support.
  • Windows: Improved USB cancellation mechanism.
  • USB: Added examples of standard control transfer requests to the wizard.
  • Windows: Improved*.sysand INF files to help pass WHQL tests.
  • USB:usb_diagsample and generated code now have basic support for multiple devices.
  • PLX samples: Sample code with implementation of DMA transfer was added top9054_diag.c.
  • WDREG/WDREG16utility: 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 newWD_GetDeviceProperty()API function, which allows retrieving of specific device properties likeWDU_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.
  • WDREGutility: TheWDREGutility can uninstall/enable/disable multiple interface devices.
  • Windows Delphi USB: Improved generated and sample code.
  • USB generated/sample C code: Improved generated and sample code.
  • Windows Visual Basic and Delphi generated ISA code: Improved generated and sample code.
  • Wizard: Minor GUI fixes.

Version 6.0.3

Release Date 11.08.2003

New Features

  • Support for ARM-based platforms on Windows CE.
  • Support for USB remote wakeup feature.

Enhancements

  • USB: Improved bulk transfer rates on Windows XP and Windows Server 2003.
  • USB: Added device reset and wakeup functions.

Fixes

  • Visual Basic USB sample and generated code: Now handles usage of unsigned values when the value of vendor and product IDs might exceed 32,767 (since v6.0.0).
  • Visual Basic USB sample and generated code: Fixed the default alternate setting number in the generated code which was previously set to the selected interface number (since v6.0.0).
  • Visual Basic USB sample and generated code: Fixed flawed implementation ofListenToPipe()function and related functions, due to lack of good support for multi-threading andCreateThread()in VB (specifically VB 6.0).ThreadStart/Stop()Visual Basic functions are now replaced withVB_ThreadLoopStart/Stop()DLL functions and Listen loop runs in the DLL (not in the user thread function).
  • Delphi USB: Previously, inPrintEndpoints()function inusb_diag_lib.passample, endpoints data was inaccurate and the application terminated if there were zero endpoints (since v6.0.0).
  • Delphi USB: Fixed DLL thread functions usage, resolved previous problems with Listen to Pipe function (since v6.0.0).
  • Linux 2.4: Resolved previous problem, where on some computers there was a failure in reading from the PCI card’s memory (read only 0xffffffff). The problem is resolved by callingpci_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 ofdwMask(since v6.0.0).
  • VxD drivers: Resolved problem of installation using WDREG on Windows 95/98/Me, and fixed an incorrectly displayed error message (since v6.0.0).
  • wdreg16.exe: Increased stack size in the makefile to fix an application crash that previously occurred on some Windows Me/98 platforms.
  • WHQL tests: In order to pass WHQL tests, changed the code to avoid access to unknown buffer if an invalid IOCTL is received.
  • WHQL tests: In order to pass WHQL tests, initialized Plug-and-Play IRP status.

Version 6.0.2

Release Date 22.05.2003

New Features

  • Support for Windows Server 2003.
  • Support for Windows CE.NET 4.2.
  • Windows CE support for MIPS processors.
  • Delphi: support for new USB API, including sample code and wizard code generation.
  • Support for Linux kernel 2.4.20.

Enhancements

  • Windows: In the Debug Monitor (wddebug_guiorwddebug) an extra functionality was added to the Send debug messages to kernel debugger option. When enabled, WinDriver debug messages will be sent to the kernel debugger during WinDriver activation in the next boot.
  • Minor code improvements in Visual Basic PCI, ISA and USB code generation.

Fixes

  • Linux kernel 2.4.20: Now fully supported after having experienced compilation problems.
  • Linux: Resolved installation problems on multi-processor (SMP) systems (since v6.0.0).
  • Linux: Scatter/Gather DMA: Improved to correctly handle HIGHMEM support.
  • Linux: Resolved previous crash in the case of repeated allocations of small contiguous DMA buffers withWD_DMALock()calls.
  • Linux: Fixed problems related to simultaneous usage of WinDriver v6.0X and WinDriver v5.2.2 or lower on the same PC (since v6.0.0).
  • Wizard USB projects (*.wdpfiles): Disabled Save option. This option is no longer supported beginning with v6.0.0 (since it has no real significance), but was inadvertently still enabled in the wizard in v6.0.0-6.0.1 (since v6.0.0).
  • USB generated code: Solved the problem where code generated in v5.2.2 or lower and rebuilt with v6.0X failed to activateevent_register()(since v6.0.0).
  • Windows: Previously (from v6.0.0), on rare occasionsWD_UsbTransfer()and potentiallyWD_IntWait()returned incorrect error status/caused a system crash.
  • Windows:windrvr6.infno longer demands an IRQ from Windows, and the memory range from which 1 byte was taken has been expanded, fixing WinDriver installation failure on some machines (since v6.0.0).
  • WDREG: Previous junk messages andWDREGcrashes have been eliminated (since v6.0.0).
  • Visual Basic ISA code generation: Resolved previous compilation errors (bug since v6.0.0).
  • Visual Basic USB sample and code generation: Fixed potential memory leak inPrintDeviceConfigurations()library function.
  • PLX9656 sample diagnostics application: DMA test fixed (since v6.0.0).
  • Reduced porting problems of applications generated prior to v6.0.0.
  • WinCE .NET: WinDriver’s debug messages are sent in all cases to the kernel debugger when this option is enabled.
  • Windows: Resolved memory leak that occurred when the API functionWDU_transfer()was canceled or had exited as a result of a timeout (since v6.0.0).

Version 6.0.1

Release Date 09.04.2003

New Features

  • wdregsource code supplied.
  • STMicroelectronics USB HID samples: for USB/Serial bridge (st/rs232u) and for 92163 USB Evaluation Kit (st/92163).

Enhancements

  • Wizard: The wizard does not freeze when installing an INF file.
  • Wizard: Allow large files to be read in the “File to Pipe” option in the USB transfer dialog.
  • Visual Basic: Improved VB generated/sample code.

Fixes

  • When updating a driver for a non-plugged device, wdreg previously performed successfully but returned an error status code.
  • Windows: USB Transfer functions now return to the caller when short USB bulk / interrupt transfer arrives, instead of waiting for the entire buffer to be filled.
  • Windows CE: During CE startup, CE tried to load the wrong DLL (windrvr.dllinstead ofwindrvr6.dll).
  • Windows 98: Copynewdev.dllto the user’s computer, if it does not exist. (This DLL is required for detecting the connected USB devices and for installing INF files for these devices.)
  • Linux USB: Interrupt transfer could cause a crash due to incorrect pipe type detection in the case of transfer failure.
  • Linux USB: Linux occasionally returned incorrect error status.
  • Linux USB: Fixed handling of devices with multiple interfaces.
  • Visual Basic: Fixed Stat2Str() VB implementation (inwd_utils.cls) for correct handling of string transfers between C DLL and VB application.
  • Visual Basic USB: Corrected function declarations inwd_utils.cls.
  • Visual Basic PCI: Generated code: FixedWD_License()call by adding a NULL character to the end of the license string that is sent to the function, so that it will be interpreted as an ANSI string by the C DLL.
  • USB Delphi code generation is now disabled in DriverWizard (not supported from v6.0.0).

Version 6.0.0

Release Date 17.03.2003

New Features

  • Added support for USB on Linux.
  • Added support for USB and PCI on WindowsCE.NET.
  • Added code generation for Visual Basic 6.0 (also added a USB VB sample).
  • Added support for Visual Studio .NET project generation.
  • Added user-mode APIs for USB HID devices.
  • Improved APIs for USB on all operating systems.

Enhancements

  • Added return values for allWD_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 frominclude/windrvr_int_thread.htosrcdirectory.
  • Replacedwd_vb.dllwithwd_utils.dll.
  • AddedpKernelAddrtoWD_DMAstruct. For contiguous-buffer DMA,WD_DMALock()returns the kernel mapping of the allocated buffer indma.pKernelAddr.

Fixes

  • Replaced installation/uninstallation method ofwindrvr.syson WDM Windows. As a result — changedwindrvrtowindrvr6on all operating systems.windrvr6is not binary compatible withwindrvr.
  • Fixed power change handling on Windows — enabling automatic resetting of interfaces on USB devices after recovering from standby state.
  • Fixed wizard andwddebug_GUIicons on Linux.
  • When failing to register a device — the parallel port sample in Visual Basic will not spawn infinite message boxes.
  • Fixed Delphi compilation error when range checking turned on.
  • Fixed WINNT crash that occurred after 0x80000000 interrupts on semaphore_release that nobody waited on.

Version 5.2.2

Release Date 28.11.2002

New Features

  • Added support for Linux kernels compiled with GCC 3.x (e.g., RedHat 8.0).
  • Addedwindrvr_isr()hook on VxWorks to allow the user to add code to an interrupt handler.
  • Added enabling of PCI bus mastering on Linux to solve a problem with several BIOS that do not support this natively.

Enhancements

  • Improved support for USB composite devices performing control transfers.
  • WinDriver and KernelDriver documentation improved, including restructuring, many contents fixes and useful additions.

Fixes

  • WindowsFixed a bug in theWDREGutility, which caused to fail on Windows 95.
  • Fixed a bug in theWDREGutility, which caused to fail on Windows 95.
  • LinuxFixed 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.
  • 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.
  • USBSolved BSOD that occasionally occurred on extraction of USB devices, while performing isochronous transfer.Solved synchronization problem that sometimes cause BSOD with USB devices.
  • Solved BSOD that occasionally occurred on extraction of USB devices, while performing isochronous transfer.
  • Solved synchronization problem that sometimes cause BSOD with USB devices.
  • KernelDriverFixed a bug in KernelDriver’s functionKD_OpenWinDriver()inkd.lib, on Win32 platforms. Previously only the first call to this function was successful, while consequent calls would fail.
  • Fixed a bug in KernelDriver’s functionKD_OpenWinDriver()inkd.lib, on Win32 platforms. Previously only the first call to this function was successful, while consequent calls would fail.

Version 5.2.1

Release Date 23.10.2002

Enhancements

  • Several transfer commands that acknowledge an interrupt/for interrupt acknowledgment can now be set in DriverWizard.
  • Improvement of Debug Monitor buffer overflow behavior, so that older messages are lost rather than new messages.
  • AddedDMA_ALLOW_CACHEoption toWD_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 loadingWINDRVR.SYS.

Fixes

  • GeneralFixed a bug that caused memory corruption and BSOD on Win2000/XP, when performing contiguous DMA and callingWD_DMAUnlock().Fixed BSOD when KernelDriver callsWD_IntCount()from high IRQL (usually the function is called fromwindrvr_int_thread.hISR).Fixed BSOD in cases when a LOT of interrupts (2\^31) are generated but no application/driver is registered to listen to them.Fixed a bug that caused a potential for BSOD on each call to the Kernel PlugIn (especially on checked build when using Microsoft Driver Verifier).Fixed a bug that caused Cypress EZ-USB firmware download to fail (especially if recompiled).Fixed bugs in the support for Visual Basic and Delphi, which caused compilation errors.Fixed Scatter/Gather DMA handling on Linux, which gave wrong byte count to first and last pages.Fixed a bug that caused theXXX_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.
  • Fixed a bug that caused memory corruption and BSOD on Win2000/XP, when performing contiguous DMA and callingWD_DMAUnlock().
  • Fixed BSOD when KernelDriver callsWD_IntCount()from high IRQL (usually the function is called fromwindrvr_int_thread.hISR).
  • Fixed BSOD in cases when a LOT of interrupts (2\^31) are generated but no application/driver is registered to listen to them.
  • Fixed a bug that caused a potential for BSOD on each call to the Kernel PlugIn (especially on checked build when using Microsoft Driver Verifier).
  • Fixed a bug that caused Cypress EZ-USB firmware download to fail (especially if recompiled).
  • Fixed bugs in the support for Visual Basic and Delphi, which caused compilation errors.
  • Fixed Scatter/Gather DMA handling on Linux, which gave wrong byte count to first and last pages.
  • Fixed a bug that caused theXXX_CountDevices()function in the USB generated code to fail.
  • Fixed a bug in the Kernel PlugIn installation, which caused the Kernel PlugIn to fail to start after reboot.

Version 5.2.0

Release Date 01.09.2002

New Features

  • Added Plug-and-Play and power management handling, both at the kernel and at the user level. This allows compliance with Windows Driver Model (WDM) functionality.
  • Added 64-bit data transfer on x86 machines. This feature enables utilizing new 64bit buses on existing 32bit Windows and Linux operating systems, thereby getting maximum performance for drivers.
  • DriverWizard now generates Kernel PlugIn code.
  • Added enhanced support for PLX Technology’s new product line, the PCI 9656 I/O Accelerator chip. The enhanced support includes special set of API which implements PLX 9656 access and control, as well as sample application, which can be used as a skeletal driver.
  • KernelDriver now supports generating drivers using all versions of DDK for all Windows operating systems, with extended support for Visual C++.
  • Complete WDM support for KernelDriver, supporting the standard Windows Driver Model on Windows 98/ME/2000/XP.
  • Code generation for user drivers now generates documentation for both header and body of the functions.

Enhancements

  • Mergedwdpnp.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

  • GeneralVarious DriverWizard changes, aimed at increasing usability and user experience.
  • Various DriverWizard changes, aimed at increasing usability and user experience.
  • WindowsRe-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.
  • 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.
  • LinuxFixed CTRL-Z resulting in phantom interrupt.
  • Fixed CTRL-Z resulting in phantom interrupt.
  • SolarisOn Solaris 2.6, Fixed a bug that caused a crash when trying to open non-existing Kernel PlugIn.
  • On Solaris 2.6, Fixed a bug that caused a crash when trying to open non-existing Kernel PlugIn.

Version 5.0.5

Release Date 28.08.2002

New Features

  • Added support for Windows 2000 service pack 3.

Version 5.0.5

Release Date 05.05.2002

New Features

  • Added enhanced support for PLX Technology’s new product line, the PCI 9056 I/O Accelerator chip. The enhanced support includes special set of API which implements PLX 9056 access and control, as well as sample application, which can be used as a skeletal driver.

Enhancements

  • Improved interrupt handling on Windows NT 4.0 running on a computer with APIC (Advanced Programmable Interrupt Controller) chip, by retrieving PCI related data from the OS instead of directly from the hardware.

Fixes

  • GeneralFixed 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.
  • 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.
  • WindowsFixed a bug that caused BSOD when using the DriverWizard generated INF file on certain PCI devices (a bug since v5.0.4).Fixed the file KP_95.lib which was missing several functions required for compiling Kernel PlugIn projects under Windows 95 (a bug since version 5.0.4).
  • Fixed a bug that caused BSOD when using the DriverWizard generated INF file on certain PCI devices (a bug since v5.0.4).
  • Fixed the file KP_95.lib which was missing several functions required for compiling Kernel PlugIn projects under Windows 95 (a bug since version 5.0.4).
  • UnixFixed a bug that caused some Unix environment variables to be overridden by DriverWizard.
  • Fixed a bug that caused some Unix environment variables to be overridden by DriverWizard.

Version 5.0.4

Release Date 24.01.2002

New Features

  • Added USB 2.0 support under Windows 2000 and Windows XP.
  • WinDriver Hardware Debugger now sends debug messages to the operating system’s kernel debugger.
  • Added version information to wdpnp.sys that can be retrieved by reading the file properties.
  • WinDriver User’s Guide now includes new, improved, function reference.

Enhancements

  • WinDriver for USB — New API:WD_UsbResetDeviceEx(), allows reset of devices that are not in disabled state.
  • WinDriver for USB — AddedUSB_SHORT_TRANSFERoption toWD_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 — AddedUSB_FULL_TRANSFERoption toWD_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 — GeneralAccess to EEPROM of PLX 9030, 9054 and IOP480 chipsets was improved. Now when access to EEPROM of these chipsets fails, WinDriver retries the entire access process.Interrupt handling by DriverWizard was fixed. A bug since version 5.0 caused DriverWizard to handle interrupts without implementing all the parameters assigned by the user; this affected level sensitive interrupt handling and data transfer operation type definition.Execution method of interrupts transfer commands was improved. Now the interrupt transfer commands are executed only if the application handling the interrupts exits abnormally. A bug since version 4.4.0 caused interrupts transfer commands to be executed each time the interrupt was disabled.Fixed a bug that caused WinDriver to issue application assertion under Windows 2000 checked-build.FixedWD_MultiTransfer()to support Delphi.DriverWizard was fixed to disable generation ofXXX_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.
  • Access to EEPROM of PLX 9030, 9054 and IOP480 chipsets was improved. Now when access to EEPROM of these chipsets fails, WinDriver retries the entire access process.
  • Interrupt handling by DriverWizard was fixed. A bug since version 5.0 caused DriverWizard to handle interrupts without implementing all the parameters assigned by the user; this affected level sensitive interrupt handling and data transfer operation type definition.
  • Execution method of interrupts transfer commands was improved. Now the interrupt transfer commands are executed only if the application handling the interrupts exits abnormally. A bug since version 4.4.0 caused interrupts transfer commands to be executed each time the interrupt was disabled.
  • Fixed a bug that caused WinDriver to issue application assertion under Windows 2000 checked-build.
  • FixedWD_MultiTransfer()to support Delphi.
  • DriverWizard was fixed to disable generation ofXXX_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 — PCIFixed 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).
  • 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 — PCISet Auto Masking for non-sharable interrupts only. A bug since v4.4.2 could have causedWD_IntDisable(), when using sharable interrupts, to disable other interrupts as well.
  • Set Auto Masking for non-sharable interrupts only. A bug since v4.4.2 could have causedWD_IntDisable(), when using sharable interrupts, to disable other interrupts as well.
  • Linux — GeneralThe operation of the functionWD_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 insidekfree()(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.
  • The operation of the functionWD_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 insidekfree()(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 — GeneralFixed a dependency problem betweenwindrvr.sysandwdpnp.sys. A bug since version 5.0.3 causedwindrvrto return error code 37 (STATUS_INTERNAL_ERROR) ifwdpnp.syswas loaded beforewindrvr.sys/vxd. Now, the resource management is handled bywdpnp.sysinstead ofwindrvr.sys/vxdand ifwindrvr.sys/vxdis loaded afterwdpnp.sys, it will initiate the transfer of the card resources instead ofwdpnp.sys.Moreover, nowwdpnp.sysdoes not assume thatwindrvr.sysis 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 methodwdpnp.sysretrieves 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.
  • Fixed a dependency problem betweenwindrvr.sysandwdpnp.sys. A bug since version 5.0.3 causedwindrvrto return error code 37 (STATUS_INTERNAL_ERROR) ifwdpnp.syswas loaded beforewindrvr.sys/vxd. Now, the resource management is handled bywdpnp.sysinstead ofwindrvr.sys/vxdand ifwindrvr.sys/vxdis loaded afterwdpnp.sys, it will initiate the transfer of the card resources instead ofwdpnp.sys.Moreover, nowwdpnp.sysdoes not assume thatwindrvr.sysis 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 methodwdpnp.sysretrieves 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.
  • USBThe “send to pipe” operation in DriverWizard was fixed to allow input of long data strings (i.e., more than 1024 chars). The bug caused DriverWizard to issue application error when long data strings were sent.Timeout expiration was fixed to avoid BSOD if the USB device is no longer connected.WinDriver now uses the operating system’s DeviceAddress as a USB uniqueId instead of obtaining the Pointer to Device Object (PDO) from the operating system. Now WinDriver obtains the PDO only for the purpose of communicating with the USB device at theWD_GetConfiguration()andWD_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.
  • The “send to pipe” operation in DriverWizard was fixed to allow input of long data strings (i.e., more than 1024 chars). The bug caused DriverWizard to issue application error when long data strings were sent.
  • Timeout expiration was fixed to avoid BSOD if the USB device is no longer connected.
  • WinDriver now uses the operating system’s DeviceAddress as a USB uniqueId instead of obtaining the Pointer to Device Object (PDO) from the operating system. Now WinDriver obtains the PDO only for the purpose of communicating with the USB device at theWD_GetConfiguration()andWD_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.
  • KernelDriverDriverWizard was fixed to allow the Debug Monitor GUI to run under Linux.Fixed DriverWizard so that it will generate code with an IOCTL to performWD_License().
  • DriverWizard was fixed to allow the Debug Monitor GUI to run under Linux.
  • Fixed DriverWizard so that it will generate code with an IOCTL to performWD_License().

Version 5.0.3

Release Date 12.09.2001

New Features

  • WinDriver and KernelDriver support Windows XP(RC1).
  • WinDriver supports Windows CE 3.0.
  • WinDriver and KernelDriver support Linux kernel 2.4.x.

Enhancements

  • The Debug Monitor (wddebug_gui), previously available in the Windows versions only, is now available under the Linux and Solaris versions as well.
  • New API —WD_DebugAdd()— Enables sending debug messages to the debug log which allows printing them.
  • Minor: The evaluation version time limitation, requiring reboot to continue working under Linux, Solaris, VxWorks and Windows CE, was extended to 1 hour instead of 30 minutes.
  • Minor: The Unique ID of USB devices is now a pointer to a device object (as received from Windows 98/2000/XP(RC1)).
  • Minor: New design of Quick Start Info window in DriverWizard.

Fixes

  • General(Since version 5.0.0). Level sensitive Interrupt acknowledgment via DriverWizard. Previously, trying to listen to level sensitive interrupts might have caused hangs.PLX9030 library — modified the interrupt acknowledge register (INTSCR). Previously this register was accessed as a 32bit register, instead of a 16bit.
  • (Since version 5.0.0). Level sensitive Interrupt acknowledgment via DriverWizard. Previously, trying to listen to level sensitive interrupts might have caused hangs.
  • PLX9030 library — modified the interrupt acknowledge register (INTSCR). Previously this register was accessed as a 32bit register, instead of a 16bit.
  • Windows 2000Interrupt 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.
  • 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.
  • “Memory leak” in pthreads usage. Previously, opened threads were not closed properly. May have prevented opening new threads.
  • Linux(Since version 5.0.0). Modified the Kernel PlugIn function,funcIntAtDpc(), to be executed in “bottom half” instead of “top half”.
  • (Since version 5.0.0). Modified the Kernel PlugIn function,funcIntAtDpc(), to be executed in “bottom half” instead of “top half”.
  • VxWorksPrint messages from threads, created byInterruptThreadEnable(), now appear a in the calling shell, instead of the device’s terminal.WD_Sleep()withSLEEP_NON_BUSYoption did not work for a time shorter than 1 second.
  • Print messages from threads, created byInterruptThreadEnable(), now appear a in the calling shell, instead of the device’s terminal.
  • WD_Sleep()withSLEEP_NON_BUSYoption did not work for a time shorter than 1 second.

Version 5.0.2

Release Date 25.06.2001

  • Enhancement: The Wizard now checks the validity of the name chosen for the generated INF/KDF file.
  • Enhancement: A warning is issued when trying to create additional interrupts/memory/I/O while overlapping resources with existing ones.
  • Enhancement: The descriptions in the PCI vendor ID and device ID list were updated with recent details.
  • Enhancement: The USB read/write dialog box now has an option to “add pipe to file” and “save input”.
  • Enhancement: All read/write dialog boxes have a “close” button.
  • 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 forxxx_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 functionWD_UsbResetDevice()which was missing from the version 5.0.0 manual.

Version 5.0.1

Release Date 08.05.2001

  • New feature: Added a new remotepci_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.hlpfiles 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 copieswdpnp.systo 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 atUsb_scan().
  • Fix: In WinDriver for USB when writing to a USB pipe eliminated DriverWizard writing of ASCII data instead of HEX data.
  • Fix: On WindowsNet.libnow 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 offReadasBOOLEANinstead ofDWORD.

Version 5.0.0

Release Date 12.04.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 onWD_CardRegister().
  • Fix: KernelDriver USB generates C and C++ SYS files for Windows 2000.

Version 4.3.3

Release Date 08.11.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 whenWD_DMAUnlock()was called from Kernel PlugIn and KernelDriver.
  • Fix: In WinDriver USB,WD_USB_MAX_DEVICE_NUMBERchanged 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 Kernel PlugIn.
  • Fix: In WinDriver for Solaris, fixed memory leak in abnormal application termination.
  • Fix: In WinDriver for Solaris, fixed crash onWD_KernelPlugInOpen().
  • Fix: In WinDriver for Solaris(SPARC), shortened scan of PCI bus from 40 seconds to 1-2 seconds.
  • Fix: In WinDriver for Solaris(SPARC), fixed PCI interrupt handling for shared PCI interrupts and cards behind PCI bridges.

Version 4.3.2

Release Date 26.03.2000

  • Name change: The company name has been changed from KRFTech to Jungo.
  • New feature: supports USB devices with multiple interfaces.
  • Major improvement in WinDriver for Solaris: The PCI scan is now performed faster, and we eliminated abnormally long scan times on AXi boards.
  • Improvement in WinDriver USB: Isoch transfer auto adjust are better capable of overcoming failures in transfers.
  • Improvement in WinDriver USB: Supports multiple interfaces.
  • Fix: On Windows 95/98, non-sharable edge-triggered interrupts were in some cases received only once.
  • Fix: On WINNT/98 (SYS) and Solaris, resources were not released on abnormal termination.
  • Fix: WinDriver USB would display a message “duplicate object name” after installation.
  • Fix: In WinDriver USB, A Device can now be stopped.
  • Fix: In WinDriver USB, No more report error in short USB transfers and transfer of size 0.
  • Fix: In WinDriver for Linux, Installation fixes on Linux 2.0.kernel.
  • Fix: In Wizard, Saving INF file without an extension can now be done without causing problems.
  • Fix: In WinDriver for Solaris, Interrupts are now acknowledged by default which prevents sys log overflow and lock ups.
  • Fix: In KernelDriver, WINNT samples and the generated code can now be compiled currently using the build utility.

Version 4.3.1

Release Date 24.02.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 withwindrvr.syson Windows 98.
  • Fix: interrupt handling on Windows 98, Windows NT/2000 (bug only in v4.3.0).
  • Fix:WD_DMAUnlock()on Windows 98, Windows NT/2000 (bug only in v4.3.0).
  • Fix: error message when installing USB INF file on Windows 2000.

Version 4.3.0

Release Date 17.01.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 onWD_IntWait()without locking machine.

Version 4.2.0

Release Date 15.11.1999

  • Wizard now also generates driver code in Delphi.
  • Enhanced support for Altera PCI cores.
  • Enhanced support for PLX IOP480.
  • Automatic generation of INF file for windows 95/98.
  • Wizard generates makefiles simultaneously for all operating systems and IDEs chosen by the user.
  • All samples include makefiles for all supported IDEs.
  • Debug Monitor now integrated into Wizard environment.
  • GUI enhancements in the Driver Wizard.
  • The default when adding new ISA interrupts in Wizard is now sharable interrupts.
  • Contiguous-buffer DMA also for Linux 2.2 (only 2.0 supported previously).
  • Fixed Scatter/Gather DMA on Windows 98.
  • Unix make files: Fixed DOS slashes.

Version 4.1.4

Release Date 28.07.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.
  • AddedWD_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_VERSIONstructure correction in Delphi.
  • Fixed interrupt handling in Windows CE.
  • FixedWD_PciGetCardInfo()on Windows 98.
  • Fixed Wizard Halting after interrupt is disabled.

Version 4.1.0-4.1.2

Release Date 02.02.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 12.12.1998

  • Windows 98 support.
  • WinDriver Kernel PlugIn — allows running parts of the driver code from the kernel mode.
  • Sleep function — For accessing slow hardware.
  • ISA Plug-and-Play support.
  • Debugging monitor — Allows tracking of errors, warnings and trace messages from the WinDriver’s kernel module.
  • Dynamic driver loader — WinDriver enables the driver created to be loaded and unloaded without rebooting the machine.
  • Enhanced source code generation for interrupts — DriverWizard creates full interrupt source code.
  • PLX 9050 library enhancements — EEPROM read/write support functions and Enhanced interrupt handling.

Version 3.0.3

Release Date 31.05.1998

  • Enhanced support for Multi-CPU Multi-PCI bus.
  • Corrected the interrupt count value returned byWD_IntWait().

Version 3.0.2

Release Date 24.04.1998

  • Minor improvements in DriverWizard.
  • Supports Windows NT checked build.

Version 3.0.1

Release Date 11.10.1997

  • Minor bug fixes.

Version 3.0.0

Release Date 28.09.1997

  • Added DriverWizard to package.
  • DriverWizard enables the programmer to ‘talk’ and ‘listen’ to his card via a windows user-interface.DriverWizard then creates the source code for the driver.
  • DMA optionDMA_LARGE_BUFFERadded for locking regions larger than 1MB.
  • Removed limitation of 20 concurrent DMA buffers in use.

Version 2.1.2

Release Date 21.03.1997

  • For memory mapped cards: you can now directly access the memory region, without callingWD_Transfer(). The pointer to the memory region is returned indwUserDirectAddrreturned byWD_CardRegister().
  • DMA transfers: DMA contiguous buffer allocation by WinDriver is available by settingdwOptions = DMA_KERNEL_BUFFER_ALLOC, when callingWD_DMALock(). the linear address of the buffer allocated will be returned inpUserAddr, and the physical address inPage[0]. the buffer is available until callingWD_DMAUnlock().

Version 2.1.1

Release Date 11.03.1997

  • For PCI cards: Structure used for calls toWD_PciScanCards()was changed. UsepciScan.searchId.dwVendorIdandpciScan.searchId.VendorIdand the same fordwDeviceId.

Version 2.1.0

Release Date 20.02.1997

  • For memory mapped cards, changed itemdwUserAddrtodwTransAddr.
  • UsedwTransAddrwhen callingWD_Transfer().AddeddwUserDirectAddrfor direct memory transfers without callingWD_Transfer().dwUserDirectAddrNOT YET IMPLEMENTED.

Download WinDriver Free 30 Days Trial

Please fill the form below to download a fully featured WinDriver evaluation

Software License Agreement of WinDriver (TM) Version v16.3.0
© Jungo Connectivity Ltd. 2024 All Rights Reserved

IMPORTANT – READ CAREFULLY: THIS SOFTWARE LICENSE AGREEMENT (“AGREEMENT”) IS A LEGAL AGREEMENT BETWEEN YOU AND JUNGO CONNECTIVITY LTD. (“JUNGO”), FOR THE WINDRIVER SOFTWARE PRODUCT ACCOMPANYING THIS LICENSE (THE “SOFTWARE”). BY INSTALLING, COPYING OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO BE LEGALLY BOUND BY THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT, DO NOT INSTALL, COPY, OR OTHERWISE USE THE SOFTWARE.

1.  OWNERSHIP OF THE SOFTWARE. All right, title, and interest in and to the Software, including associated intellectual property rights, of any sort and/or kind, are and shall remain solely with Jungo and its licensors, and may be protected by copyright, trademark, patent and trade secret law and international treaties. This Agreement does not convey to you an interest in or to the Software, but only a limited, non-transferable, non-sublicensable, non-exclusive, and revocable right of use, in accordance with the terms of this Agreement. You may not remove any proprietary notices and/or any legends from the Software, in whole or in part.

2.  GRANT OF LICENSE. Jungo hereby grants you a personal, non-exclusive, nontransferable, and non-sublicensable node-locked and time limited license to use the Software.

Individuals: Jungo grants you, as an individual, a personal, non-exclusive, “single-user” license to use the Software on a single computer, in the manner provided below, at the site for which the license was given.

Entities: If you are an entity, Jungo grants you the right to designate one individual within your organization (and only one) to have the right to use the Software on a single computer, in the manner provided below, at the site for which the license was given.

License Scope: A single user license allows usage of WinDriver and redistribution of certain components (as defined below) within a single end product SKU, for a single device (identified by its VID/PID (USB) or VID/DID (PCI)), and without SDK/API capabilities.  If you need extended license or distribution rights, please contact Jungo.

3.  EVALUATION LICENSE. If you have not yet paid license fees for the use of the Software, then Jungo hereby grants you a personal, non-exclusive, non-transferable and non-sublicensable license to internally use the Software for evaluation purposes only, for a period of 30 days (the “Evaluation License”). If, after the expiration of the Evaluation License, you wish to continue using the Software and accompanying written materials, you may do so by remitting the required payment to Jungo, and you will then receive a registration code and a license string that will permit you to use the Software on a single computer under one of the license schemes specified in Section 2 above.

4.  OPEN SOURCE. The Software includes certain files that are subject to open source licenses. These files are identified in their header files (“Open Source Files”). You must use the Open Source Files in accordance with the terms of their respective licenses.
In the event of any contradiction between the terms of this Agreement, and the terms of the open source license accompanying a certain Open Source File, the terms of the latter shall prevail, with regard to the said Open Source File.

RESTRICTIONS ON USE AND TRANSFER

5.  Distribution of Files:

(a) You may not distribute, or otherwise transfer or assign, any portion of the Software, including any of the headers or source files that are included in the Software, unless otherwise expressly permitted in this Agreement, subject to the provisions of Section 4 above.

(b) Subject to your full and continued compliance with the terms of this Agreement, including the ongoing payment of annual license fees, you may distribute the following files:

Windows:
windrvr1630.sys
windrvr1630.inf
wd1630.cat
wdapi1630.dll
wdapi_dotnet1630.dll
wdapi_java1630.dll wdapi_java1600.jar
wdreg.exe
difxapi.dll

Windows_CE:
windrvr1220.dll
wdapi1220.dll

Linux:
windrvr_gcc_v2.a windrvr_gcc_v3.a windrvr_gcc_v3_regparm.a
kp_linux_gcc_v2.o kp_linux_gcc_v3.o kp_linux_gcc_v3_regparm.o
libwdapi1630.so
libwdapi_java1630.so wdapi_java1600.java
kp_wdapi1630_gcc_v2.a kp_wdapi1600_gcc_v3.a kp_wdapi1600_gcc_v3_regparm.a
linux_wrappers.c linux_wrappers.h wdusb_linux.c
wdusb_interface.h wd_ver.h linux_common.h windrvr.h windrvr_usb.h
wdreg
configure makefile.in
configure.wd makefile.wd.in makefile.wd.kbuild.in
configure.usb makefile.usb.in makefile.usb.kbuild.in
setup_inst_dir

(c) The files listed in Section 5.b above may be distributed only as part
of a complete application that you distribute under your organization name,
and only if they significantly contribute to the functionality of your
application. For avoidance of doubt, each organization distributing these
files as part of the organization products is required to have valid
license(s) under the organization name/VID, irrespective of the party who
actually performed the product development. Licenses granted to
subcontractors do not grant distribution or other rights to the
organizations for which they are developing.

(d) The distribution of the windrvr.h header file is permitted only on Linux.

(e) You may not modify the distributed files specified in Section 5.b of this Agreement.

(f) You may not distribute any header file that describes the WinDriver functions, or functions that call the WinDriver functions and have the same basic functionality as that of the WinDriver functions.

6.  The Software may not be used to develop a development product, an API, or any products, which will eventually be part of a development product or environment, without the written consent of Jungo and subject to additional fees and licensing terms.

7.  You may make printed copies of the written materials accompanying the Software, provided that only users bound by this license use them.

8.  You may not allow any third party to use the Software, grant access to the Software (or any portion thereof) to any third party, or otherwise make any commercial use of the Software, including without limitation, assign, distribute, sublicense, transfer, pledge, lease, rent, or share your rights in the Software or any of your rights under this Agreement, all whether or not for any consideration.

9.  You may not translate, reverse engineer, decompile, disassemble, reproduce, duplicate, copy, or otherwise disseminate all or any part of the Software, or extract source code from the object code of the Software.

10. Jungo reserves the right to revise, update, change, modify, add to, supplement, or delete any and all terms of this License Agreement; provided, however, that changes to this License Agreement will not be applied retroactively. Such changes will be effective with or without
prior notice to you. You can review the most current version of this License Agreement under the WinDriver download form page.

11.  You may not incorporate or link any open source software with any open source software part of the Software, or otherwise take any action which may cause the Software or any portion thereof to be subjected to the terms of the Free Software Foundation’s General Public License (GPL) or Lesser General Public License (LGPL), or of any other open source code license.

12.  DISCLAIMER OF WARRANTY. THIS SOFTWARE AND ITS ACCOMPANYING WRITTEN
MATERIALS ARE PROVIDED BY JUNGO “AS IS” WITHOUT ANY WARRANTY. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT, ARE HEREBY DISCLAIMED TO THE FULLEST EXTENT PERMITTED UNDER APPLICABLE LAW.

13.  NO LIABILITY. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO
EVENT SHALL JUNGO OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, SAVINGS, IP INFRINGEMENT OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

14.  Governing Law. This Agreement and use of the Software are governed by the
laws of the State of Israel, regardless of its conflict of laws rules, and the
competent courts of the State of Israel shall have sole and exclusive
jurisdiction over any dispute under this Agreement or otherwise related to the
Software.

15.  Confidentiality. The Software, including any additional information
related thereto, contains confidential and proprietary information of Jungo.
Accordingly, you agree that you will not, nor allow any third party to,
disseminate, transfer, grant access to, or otherwise disclose to any third
party the Software or any part thereof or any other confidential or proprietary
information of Jungo provided in connection therewith. You will maintain all
copies of the Software and all related documentation in confidence.

16.  Termination and Effects of Termination. Jungo may terminate this Agreement
and the licenses granted to you hereunder at any time if you breach any of your
obligations hereunder, by issuance of written notice to such effect, addressed
to you at the address you provided in your registration form. Upon expiration
or other termination of this Agreement, the Licenses granted to you hereunder
shall immediately and automatically be canceled, and you will immediately
remove all copies of the Software from your computer(s) and cease any use
thereof.

17.  Contact Details. If you have any questions concerning this Agreement or wish to contact Jungo for any reason —

Web site: www.jungo.com
Email:    [email protected]

18.  U.S. GOVERNMENT RESTRICTED RIGHTS. The Software and documentation are provided with RESTRICTED RIGHTS.
Use, duplication, or disclosure by the Government is subject to restrictions set forth in subparagraph (c)(1) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1)(ii) and (2) of Commercial Computer Software – Restricted Rights at 48 CFR 52.227-19, as applicable.

19. Automatic Renewal. The subscription shall be automatically renewed, unless Licensee notifies Licensor 30 days or more prior to the expiration date of the subscription, of its intent not to renew the subscription.

 

Accessibility Toolbar