HiPerStress

Objective:

The objective of HiPerStress is to provide a tool that can construct a pre-defined refreshable object hierarchy and perform countinous refreshing upon the objects within the hierarchy at specified intervals for a finite number of iterations.

Overview:

The stress tool is a command line application that will operate nested refresh hierarchies. The refresh hiearchies, instances within a hierarchy, individual refresher refresh rates and individual refresher refresh iterations are all specified in the registry.

The application creates the refresh hierarchies and outputs the initial state of each instance's parameters. Each refresher is controlled by a separate thread refreshing at the specified interval and iterations. During initialization, the threads are created in a suspended state. When refreshing begins, the threads are 'simultaneously' awakened. Once all the refreshing has completed (all refresher threads have terminated), the final state of the provider's parameters are output along with the elapsed time.

Specifications:

Registry Configuration

rtree.gif (2279 bytes) The root of the registry path is HKEY_CURRENT_USER\Software\Microsoft\HiPerStress.   A typical configuration will contain one or more refreshers as sub-keys of the root.  Each refresher may contain a set of objects as well as nested refreshers.

 

Refreshers

Refresher keys are formatted as R[x] where [x] is a unique identifier.  A refresher may have zero or more instance sub-keys and zero or more refresher sub-keys.

Refresher.gif (1745 bytes) Each refresher has two DWORD values:
Iterations The number of refreshes for each stress session.
Wait The period of time to pause between successive refreshes in milliseconds

Instances

Instance keys are formatted as O[x] where [x] is a unique identifier.  Instances have no sub-keys.

object.gif (1669 bytes) Each instance has two STRING values:
(default) The name of an instance.
NameSpace The namespace of the instance.

Classes:

CMain

CMain is the control class for the stress application.  It is primarily responsible for the construction of the refresh hierarchy and the control of refreshing.

Data Structures

CRefresher* m_apRootRef[MAX_ROOTREFS] An array of refreshers representing the root refreshers.
CStress* m_apStress[MAX_STRESS] An array of stress objects, each representing one refresh thread.

Key Methods

BOOL Create(WCHAR *wcsRoot) Creates the universal locator and calls ConstructRefresher for all root refreshers
CRefresher* ConstructRefresher(WCHAR *wcsRegPath) Creates a new refresher, adds all of the objects, the child refreshers and sets the the stress attributes
BOOL CMain::Go() Starts the refreshing and performs the timing.