WinDriver Architecture Diagram
With WinDriver, your device driver is developed in the user-mode (as part of
your application or as a separate DLL). This dramatically shortens development
time, and makes debugging the driver simple. For PCI/ISA development, after
your driver is complete, you can easily transfer the performance critical
sections of your driver code to WinDriver's "Kernel PlugIn", which runs those
sections at maximum performance in ring 0 (See the WinDriver
Performance Page).
The WinDriver Kernel PlugIn supports Windows 2000/XP/Server 2003, Linux and
Solaris (for PCI/PCI-Express).
The device driver application produced with WinDriver (YourApp.EXE) accesses
your hardware through the WinDriver kernel agent (windrvr6.sys/vxd/o or
windrvr.sys/vxd/o - depending on the operating system and WinDriver version
that you are using), using the standard WinDriver functions.
For PCI/ISA, the performance critical sections of your code (interrupt
handlers, I/O handlers, etc.) can be handled in the Kernel PlugIn (your own
driver module - YourDriver.sys/vxd/o) and executed in the kernel mode, thereby
eliminating the overhead of the context switches between user and kernel mode.
This architecture enables you to develop and debug all of your driver code
in the user-mode, using the WinDriver functions, and to migrate only the
performance critical sections of the code to the kernel mode, via the simple
Kernel PlugIn mechanism - without any changes in the code (for PCI/ISA).
At the end of your Kernel PlugIn development cycle, your driver will include
the following elements:
- Your User Mode driver - .EXE written with the WD_XXX functions.
- The WinDriver Kernel Agent - windrvr6.sys/vxd/o or windrvr.sys/vxd/o(depending on your operating system and WinDriver version).
- Your Kernel PlugIn driver - MyDriver.sys/vxd/o - this is the driver that contains the functionality that you have chosen to bring down to the kernel level.
jungo,device driver,device drivers,driver development,driver development toolkit,driver development tools,windriver,kerneldriver,Go-Hotswap,PCI,USB,ISA,DMA,DDK,NT driver,Linux driver,Solaris driver,CE driver,Windows driver,Embedded USB Software,embedded systems,sys,USB driver, PCI driver, PnP driver, USB stack,USB NT,hotswap,high availability,CompactPCI,embedded systems,kernel mode,USB 2.0,PCI-X,PCI Express,NDIS,Network,Ethernet,Storage,quickpci,DSL,Residential gateway,Integrated Access Device,Home Gateway,SOHO gateway,SMB gateway,RG,IAD,CPE,Open RG,OpenRG,USB Host,USB Device,USB On The Go,USB Tracker,USB Tracker 110,USB analyzer,USB analysis software,USB explorer 200