The WinDriver Kernel PlugIn supports
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, 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).
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.

