WinDriver Kernel PlugIn

WinDriver » WinDriver Kernel PlugIn

A driver written in user-mode, uses WinDriver's functions ("WDC_xxx/WD_xxx" functions) for the device access. If a certain function in the user-mode needs to achieve kernel performance (the interrupt handler for example), that function is moved to the WinDriver Kernel PlugIn. Generally it should be possible to move code that uses WDC_xxx/WD_xxx calls from the user-mode to the kernel without modifications, seeing the same WinDriver API is supported both in the user-mode and in the Kernel PlugIn. The Kernel PlugIn is available for Windows 8 / Windows 7 / Vista / Server 2008 / Server 2003 / XP / XP Embedded, Mac OS X, and Linux, (and in earlier versions of WinDriver, also for Solaris).

The Kernel PlugIn is of great use in PCI applications (e.g., interrupt handling), and is not supported in USB applications.

There are two types of interaction between the WinDriver kernel and the WinDriver Kernel PlugIn:

  1. Interrupt handling: When WinDriver receives an interrupt, it will activate the interrupt handler in the user-mode driver by default. However, if the interrupt was set to be handled by the WinDriver Kernel PlugIn, then once WinDriver receives the interrupt, it will be processed by your interrupt function in the kernel. This can be the same code that you wrote and debugged in the user-mode interrupt handler before, though some of the user-mode code should be modified. We recommend you rewrite the interrupt acknowledge and handling code in the Kernel PlugIn to utilize the flexibility offered by Kernel PlugIn. You have the possibility of generating Kernel PlugIn interrupt code with the DriverWizard.
  2. Message passing: To execute functions in the kernel Mode (such as I/O processing functions), the user-mode driver simply passes a "message" to the WinDriver Kernel PlugIn. This message is mapped to a specific function, which is then executed in the kernel. This function can contain the same code as it did when it was written and debugged in the user-mode.

At the end of your Kernel PlugIn development cycle, you will have the following elements to your driver:

  1. Your user-mode driver — written with the WDC_xxx/WD_xxx functions.
  2. The WinDriver kernel — windrvr6.sys (Windows), windrvr6.o (Linux) or windrvr6 (Solaris).
  3. Your Kernel PlugIn — <Your Driver Name>.<extension> (according to the operating system: <Your Driver Name>.sys, <Your Driver Name>.vxd, <Your Driver Name>.o or <Your Driver Name>) - this is the driver that contains the functionality which you have chosen to bring down to the kernel level.

NOTE: The Kernel PlugIn is not backwards compatible. Therefore, when switching to a different version of WinDriver, you need to rebuild your Kernel PlugIn driver using the new version.

Download free trial
Benefits
  • User Mode Development: No DDK, ETK, DDI or any system-level programming knowledge is required.
  • Kernel Mode Performance: WinDriver's Kernel PlugIn technology to develop your driver in the user-mode — then run performance critical sections of it in the Kernel Mode (Ring 0) to achieve optimal performance.
  • Cross OS Portability: Use the same source code for Windows 8 / Windows 8 x64 / Windows 7 / Windows 7 x64 / Vista / Vista x64 / Server 2008 / Server 2008 x64 / Server 2003 / Server 2003 x64 / XP / XP x64 / XP Embedded , and Linux.
  • High Quality: WinDriver's kernel has been field tested on thousands of hardware/software configurations.
  • Time to Market: Shorten your development cycle and reduce time to market.
Technical Reference

WinDriver products are accompanied with highly detailed technical references that are designed to assist you in various stages of the development process.

If you have just started evaluating or using WinDriver, you may find our Quick Start Guides helpful.

Should you require more in-depth information, or would like to know more about the technical aspects of WinDriver, please refer to our Online Manual.

For other technical resources, such as FAQs and technical documents — see WinDriver's Support Page.

What Else is Included?
  • Comprehensive documentation and help files.
  • Technical support, according to Jungo's technical support plan.
  • No run-time fees or royalties.