2.4  Driver Development Toolkit

Jungo offers two types of driver development tools that can be used in order to simplify the difficult task of developing a device driver:

WinDriver is a toolkit for developing monolithic device drivers and KernelDriver is a toolkit for developing standard operating system internal drivers that require hardware access and that must communicate with the operating system or must be implemented in the kernel.

In most cases a monolithic device driver is required (i.e. a driver that drives a hardware by directly accessing the hardware). This is why WinDriver is an integral part of the Go-HotSwap package.

KernelDriver is not an integral part of the Go-HotSwap package but as a Go-HotSwap user you are entitled to receive Jungo's KernelDriver toolkit. If needed, please contact Jungo and KernelDriver will be provided to you immediately.

WinDriver provides a hardware-access API that is available to any application. The WinDriver API enables the application to access the CompactPCI card's registers, memory ranges, I/O ranges and handle interrupts, via WinDriver's kernel module. The kernel module is a generic device driver that can access any device, as instructed by the WinDriver API. When developing a hot swap aware driver using the WinDriver toolkit, WinDriver's kernel module includes the Hot Swap Engine.

WinDriver features DriverWizard, a GUI-based diagnostics and driver generation tool environment, which can automatically generate the driver code that is specific to the particular hardware. Another WinDriver feature included is the Kernel PlugIn, which enables performance critical parts of the user-mode code to run in the kernel mode, thereby achieving optimal performance, limited only by system capabilities.

When using the WinDriver wizard to generate your driver's hardware access code, you are asked to select your driver's options, one of which is Plug-and-Play notifications, another is power management notifications. Select these options in order to create a hot swap aware application. Use the Configuration Manager/hs_activate to start/stop the Hot Swap Engine, which will then notify the WinDriver application about hot swap events.

[Note]
WinDriver is integrated into the Go-HotSwap package; therefore when you read the WinDriver documentation, all references to the WinDriver directory should be read as references to the GoHotSwap directory. For example – the WinDriver PCI Manual refers to the PCI_SCAN utility, which is found under the WinDriver/util directory; in the Go-HotSwap installation this utility is found under GoHotSwap/util directory.

As mentioned before, it is not a requirement to use the included driver development tools in order to utilize the Go-HotSwap infrastructure, but by using WinDriver you will gain the following advantages:

The WinDriver PCI Manual is included in this package, and we recommend that you refer to it when developing your driver.