Projects / WinDriver


WinDriver automates and simplifies the development of user-mode Linux device drivers for PCI, CardBus, ISA, PMC, PCI-X, PCI-EXPRESS, and CompactPCI as well as USB 1.1/2.0. No internal OS knowledge or kernel level programming is required. It supports kernel 2.0.31 and above, including embedded Linux, x86 and PowerPC processors, and any 32-bit development environment supporting C or Delphi. Applications are source code compatible across Windows 98/Me/NT/2000/XP/XP Embedded/Server 2003/CE, Linux, Solaris, and VxWorks.

Operating Systems

Recent releases

  •  16 Feb 2008 00:48

    No changes have been submitted for this release.

    •  14 Nov 2004 14:23

      Release Notes: This minor release enhances PCMCIA by adding an implementation of writing to PCMCIA attribute space. The read mechanism for HID was improved by allowing read requests with no time limitation.

      •  29 Jul 2004 17:57

        Release Notes: Support has been added for PowerPC on Linux 2.4. Enhanced USB support has been added for Silicon Laboratories' C8051F320 USB board. Support for PCMCIA cards on Windows 2000/XP/Server 2003 has been added.

        •  06 Jun 2004 13:20

          Release Notes: An API to enable card cleanup handling upon an application's termination was added for PCI/ISA. Usage of console-mode WDDEBUG was simplified. The wdreg.exe installation utility was improved. WinDriver ISA/PCI/USB is now available for Linux PowerPC. Linux kernel 2.6 is supported. It is now possible to develop your driver before your PCI hardware is available. All WinDriver API calls can be logged using the DriverWizard. USB support for Texas Instruments' chips was enhanced. 32-bit and 64-bit Solaris 8-9 on SPARC is supported. 32-bit Solaris 8-9 on x86 is supported. 32-bit user applications are supported on 64-bit Solaris kernel.

          •  12 Aug 2003 15:33

            Release Notes: A previous problem with Linux 2.4 in which there was a failure in reading from the PCI card's memory on some computers was resolved. The problem has been resolved by calling the pci_enable_device() function. USB device reset and wakeup functions were added.

            Recent comments

            13 Dec 2000 12:00 omerz

            WinDriver Security Issues - Comment on klaus Remarks
            Programs access the WinDriver kernel module using the windrvr.o kernel module.
            The access is via a device file, just like any other device file. Its the responsibility of the system administrator to ensure that this access is not misused.
            All of Linux's security and permissions apply to WinDriver access as well.

            WinDriver does not subvert the security of Linux. The superuser may allow all users to access the WinDriver kernel module. He may just as well write the superuser password on the walls of his company.

            We provide a GUI on Linux (in V5.00 soon to be released) that users can use to correctly define the hardware's access registers and limits.
            WinDriver checks that the limits are enforced. Such runtime checking helps write safer code.
            If you go wrong by mistake, WinDriver will probably tell you so. If you want to go wrong, that's your business.

            Please try WinDriver yourself before commenting, and please give more informed details. Whatever concerns you have, we can address them in a constructive way.

            13 Dec 2000 11:51 omerz

            WinDriver is GOOD - Comment on Rentar Remarks
            Think of hardware engineers who have been told by their bosses to write a new driver for Linux, because Linux is hot! What's the poor guy going to do ? Read Rubini's book in two weeks, and churn out a Linux kernel module in the next two weeks ? Have you seen the number of hardware engineers posting questions about writing Linux device drivers ?

            You have a mistake in your comment, WinDriver does not move kernel level code to user level. It simply allows you to access hardware directly. It goes to great lengths to make this access safe. We will provide a GUI on Linux (in V5.00) that users can use to correctly define the hardware's access registers and limits. WinDriver checks that the limits are enforced. Such runtime checking helps write safer code. Programmers can do good things with WinDriver, or they can blunder. The same people can also blunder with a kernel mode driver. There are good programmers and bad programmers, even evil programmers. There are no good programs and bad programs, and no evil programs.
            It does not facilitate kernel level code to have hooks in user space. We'll need to look at the review of the german Linux magazine to understand whether it was accurate or mistaken.

            The name does not suggest windoze-esque techniques. Whats in a name? Windows also does not really allow kernel mode code to have hooks in the user mode.
            Since some of the premises you used to draw your conclusion are not accurate, your conclusion is also not very accurate.

            13 Dec 2000 11:42 omerz

            WinDriver IS NOT EVIL - Comment on Claudio Remarks
            Since WinDriver aids to produce user mode drivers, these are loaded and unloaded with the applications that use them. They do not therefore bloat the kernel.
            The WinDriver kernel itself is not bloated. It is heavily tested, efficient and optimized.
            Linux lets good (not clueless) application programmers gain access to useful hardware whose manufacturers don't care about providing Linux drivers.

            07 Dec 2000 11:02 philcc

            WinDriver Linux Easy and Fast Tool
            I have used Windriver/Kernaldriver to create device drivers for my Linux machine.
            This development tool has made my development of these device drivers so simple and fast that it has
            cut my development time by over 50%.
            Windriver/Kernaldriver are excellent products, and I would recommend them
            to anybody doing driver development on any type of system.


            04 Dec 2000 12:50 kaiserk

            WinDriver - DOS style "security" for Linux
            I have read about WinDriver in the Linux Magazin, a german magazine. It is indeed the crudest possible way to acess hardware: A kernel module which gives user mode processes low-level access to any device on the computer - just like DOS. A machine running driver software developed with WinDriver can be rooted by any user. Of course, this applies to the Windows version of WinDriver too.

            The article in the Linux Magazin does mention how to recognize driver software developed with WinDriver - it comes with a kernel module named something like windrv (I don't have the magazine at hand now, so I can't give more details)


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.