It is generally recommended to use WinDriver whenever possible, since it enables you to develop and
debug your code entirely in the user mode (without any need for kernel development knowledge), it supports
more operating systems, and the driver you develop will be portable across all the supported operating systems.
Use KernelDriver when you need to write a standard operating system internal driver, which must be implemented in the kernel.
NOTE: When using WinDriver to develop for PCI/ISA, you can also move performance critical sections
of your code to the kernel, by using the Kernel PlugIn
feature (which is an inherent part of the WinDriver tool-kit, and is not be confused with the KernelDriver tool-kit).
Kernel PlugIn is available for Windows, Linux, and Solaris (subject to the OS support in the specific WinDriver version that you are using).
Please also review Technical Document #17 for suggestions on how
to improve your driver's performance with WinDriver.
The selection between WinDriver and KernelDriver should depend on the required architecture: If your application needs to talk to your hardware, choose WinDriver. If your hardware needs to be accessed by many applications as a standard device driver, or if your driver needs to communicate with the operating system or must be implemented in the kernel, choose KernelDriver.
Back to Top
|