Chapter 2. Architectural Overview

2.1  General

The Go-HotSwap software is a combination of four components:

  • Hot Swap Engine – This component serves as a generic hot swap aware driver that resides in the kernel. The Hot Swap Engine communicates directly with the hardware, as well as with the hardware specific driver (directly, or through the Configuration Manager). Its central task is to detect hot swap events, identify the hot swapped board's required resources and (optional) dynamically allocate them or de-allocate them upon removal of the board.
  • Kernel-Mode Messaging Mechanism – This component is responsible for establishing and maintaining an updated log of the hot swap events according to the data received from the Hot Swap Engine. It then transfers the relevant messages to the subscribed drivers or applications.
  • Driver Development Toolkit – This component, if you wish to use it, enables quick and simple development of your driver's hardware access code. The driver development toolkit enables the user to easily produce a user application aware of hot swap events.
    [Note]
    It is not a requirement to use Jungo's driver development tools in order to develop your driver hardware access code; any third party driver development kit can be used.
  • Configuration Manager/hs_activate – This component is an user-mode application which activates and stops the Hot Swap Engine and enables the Hot Swap Engine to respond to hot swap events. The hs_activate is a console-mode application suitable for all supported operating systems, while the Configuration Manager is a graphical implementation of hs_activate, suitable for Windows only. The user can configure the Configuration Manager/hs_activate in order to execute tasks upon hot swap events such as running a batch file or starting/stopping a service, thus achieving hot swap capabilities without modifying the driver's source code.

The following diagram illustrates two possible methods of working with Go-HotSwap:

Figure 2.1  Go-HotSwap Architecture

Go-HotSwap Architecture


In Figure 2.1, the Configuration Manager/hs_activate is responsible for activating the Hot Swap Engine.
The Hot Swap Engine is then responsible for detecting hot swap events and (optional) allocating the boards' required resources. The Hot Swap Engine notifies either the WinDriver application or the Configuration Manager/hs_activate about hot swap events.
The Configuration Manager/hs_activate is also responsible for stopping the Hot Swap Engine.
You can use WinDriver to produce the user application, which includes automatic hot swap support. You have the option to use the WinDriver wizard to generate your driver's hardware access code. During this process, 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 use WinDriver's application with the Hot Swap Engine.
The alternative option is to use a different application/service via the Configuration Manager/hs_activate, which notifies/starts/stops the drivers or applications according to the way the user configured the Configuration Manager/hs_activate.