next up previous contents
Next: 1.3 Conclusion Up: 1. WinDriver Overview Previous: 1.1 Introduction to WinDriver   Contents

Subsections


1.2 Background


1.2.1 The Challenge

In protected operating systems such as Windows and Linux, a programmer cannot access hardware directly from the application level (user mode), where development work is usually done. Hardware can only be accessed from within the operating system itself (kernel mode or Ring-0), utilizing software modules called device drivers. In order to access a custom hardware device from the application level, a programmer must do the following:


1.2.2 The WinDriver Solution

Easy Development:
WinDriver enables Windows, Windows CE and Linux programmers to create USB based device drivers in an extremely short time. WinDriver allows you to create your driver in the familiar user-mode environment, using MSDEV/Visual C/C++, MSDEV .NET, Borland C++ Builder, Borland Delphi, Visual Basic 6.0, MS eMbedded Visual C++, MS Platform Builder C++, GCC, or any other appropriate compiler. You do not need to have any device driver knowledge, nor do you have to be familiar with operating system internals, kernel programming, the DDK, ETK or DDI/DKI.

Cross Platform:
The driver created with WinDriver will run on Windows 98/Me/2000/XP/Server 2003/Vista, Windows CE.NET, Windows Embedded CE v6.00, Windows Mobile 5.0/6.0 and Linux. In other words - write it once, run it on many platforms.

Friendly Wizards:
DriverWizard (included) is a graphical diagnostics tool that lets you view the device's resources and test the communication with the hardware with just a few mouse clicks, before writing a single line of code. Once the device is operating to your satisfaction, DriverWizard creates the skeletal driver source code, giving access functions to all the resources on the hardware.

Kernel-Mode Performance:
WinDriver's API is optimized for performance.