Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

360 lines
8.1 KiB

/*++
Module Name:
struct.h
Abstract:
Contains all the valid definition constants, structures used
by client.c and testdrvr.c
Author:
Sanjeev Katariya
Environment:
User mode
Revision History:
Serial # Author Date Changes
-------- ------ ---- -------
1. SanjeevK 10/28/92 Original
2. RickTu 1/25/93 Changed for new system watchdog mess.
3. RajNath 2/??/93
--*/
//
// DEFINES: General
//
//#define SRVTOCLIENT_MSLOT "\\\\.\\mailslot\\SRVTOCLNT"
#define CONNECT_MSLOT "\\\\*\\mailslot\\CONNECT"
#define SRVEND_PIPE_BASE "PIPE\\NODAL"
#define SRVEND_PIPE_NAME "STRESS7"
#define MAX_RETRY_COUNT 3
#define MAX_EMAILNAME_LENGTH 8
#define MAX_LOCATION_LENGTH 10
#define MAX_COMMENT_LENGTH 15
#define MAX_GENERAL_LENGTH 80
#define MAX_TESTS 256
#define MAX_TEST_IDS 64
#define SEND_PERIOD 10UL*60UL*1000UL //Interval 10 minutes at which Alive Message Sent
//#define NUM_MACHINE_TYPES 2
//#define MACHINE_TYPE_X86 (TCHAR)0x1
//#define MACHINE_TYPE_MIPS (TCHAR)0x2
#define STRESS_ENV_VAR "STRESSROOT"
//#define NUM_DEFAULT_SRVADMINS 4
//#define NUM_POPUP_SERVERS 4
//#define NUM_DEFAULT_SRVADMINS (sizeof(ppc_SrvAdmins)/sizeof(ppc_SrvAdmins[0]))
//#define NUM_POPUP_SERVERS (sizeof(ppc_PopUpSrvrs)/sizeof(ppc_PopUpSrvrs[0]))
//
// DEFINES: Message Identifiers
//
#define MSG_REGISTER_INFORMATION (DWORD)0x1
#define MSG_REGISTER_ADD_INFORMATION (DWORD)0x2
#define MSG_CLIENT_ALIVE (DWORD)0x3
#define MSG_CLIENT_SHUTDOWN (DWORD)0x4
#define MSG_CLIENT_WATCHDOG (DWORD)0x5
#define MSG_ERROR_POPUP (DWORD)0x6
//
// DEFINES: Popups (upper WORD bit fields)
//
#define VDM_WINDOWS_POPUP 0x10000000
#define VDM_MSDOS_POPUP 0x20000000
#define APP_POPUP 0x40000000
//
// DEFINES: Special error codes
//
#define ERROR_SHARENAME_RETRIEVAL (DWORD)2000
//
// DEFINES: Connection States
//
// This is the state transition diagram for the client
//
// Reg/Fail KeepAlive/Success
// ----------- ----
// | Count:3 | | |
// v | | v
// ------ ------ Reg/Success ------
// | DISC |--->| CONN |------------>| REG |
// ------ ------ ------
// ^ |
// | |
// --------------------------------
// KeepAlive/Fail Count:3
//
#define STATE_DISCONNECTED (DWORD)0x0
#define STATE_CONNECTED (DWORD)0x1
#define STATE_REGISTERED (DWORD)0x2
//
// TYPEDEFS: SERVER, CONNECTION_INFORMATION, REG_INFORMATION
// REG_ADD_INFORMATION, CLIENT_ALIVE, CLIENT_SHUTDOWN,
// DATA, INFORMATION, THREAD_KEEPALIVE_PARMS
//
//typedef TCHAR SERVER, *PSERVER;
//typedef struct _STRESS_SHARE {
//
// TCHAR c_MachineType;
// TCHAR pc_SrvShareName[NNLEN+MAX_COMPUTERNAME_LENGTH+6];
//
//} STRESS_SHARE, *PSTRESS_SHARE;
//typedef struct _CONNECTION_INFORMATION {
//
// TCHAR pc_ComputerName[MAX_COMPUTERNAME_LENGTH+1] ;
// TCHAR pc_ServerName[MAX_COMPUTERNAME_LENGTH+1] ;
// STRESS_SHARE pstruct_SrvShareName[NUM_MACHINE_TYPES] ;
//
//} CONNECTION_INFORMATION, *PCONNECTION_INFORMATION;
typedef struct _TEST_FLAGS {
DWORD ul_TestFl[2];
} TEST_FLAGS;
typedef struct _INFO_FLAGS {
TCHAR FreeChk;
TCHAR UniMultiProc;
WORD CsdVersion;
WORD RCMajor;
WORD RCMinor;
} INFO_FLAGS;
typedef union _STRESS_FLAGS {
TEST_FLAGS TF;
INFO_FLAGS IF;
} STRESS_FLAGS;
typedef struct _OLDCAIROBUILD {
TCHAR CairoBld[16];
} OLDCAIROBUILD;
typedef struct _FILESYSTEMINFO {
TCHAR FileSystemName[12];
DWORD FileSystemFlags;
} FILESYSTEMINFO;
typedef union _FILESYSTEMUNION {
OLDCAIROBUILD oldcairo;
FILESYSTEMINFO fsi;
} FILESYSTEMUNION;
typedef struct _REG_INFORMATION {
DWORD ul_PhysMem;
DWORD ul_Version;
DWORD ul_FreeDisk;
STRESS_FLAGS Fl;
//DWORD ul_TestFl[2]; // out of date
DWORD ul_BuildVersionNumber;
TCHAR pc_EmailName[MAX_EMAILNAME_LENGTH+1] ;
TCHAR pc_MachineName[MAX_COMPUTERNAME_LENGTH+1];
TCHAR pc_Location[MAX_LOCATION_LENGTH+1] ;
TCHAR pc_Debugger[MAX_COMPUTERNAME_LENGTH+1] ;
TCHAR Filler;
SYSTEMTIME st_StartTime;
union {
DWORD Cpu;
struct {
WORD CpuLevel;
WORD CpuType;
};
};
TCHAR Run_Type[128];
int OtherBuild;
FILESYSTEMUNION fsu;
WORD TestIds[MAX_TEST_IDS];
} REG_INFORMATION, *PREG_INFORMATION;
//
// Defines current registration packet "version" number. Need
// to incremenent the low word by "1" every time a change is made
// to the REG_INFORMATION structure
//
#define CURRENT_REG_VERSION 0xFFFF0003
typedef struct _REG_ADD_INFORMATION {
WORD TestIds[MAX_TEST_IDS];
} REG_ADD_INFORMATION, *PREG_ADD_INFORMATION;
typedef struct _CLIENT_ALIVE {
DWORD ul_ClientSendCount;
DWORD CpuUtil;
DWORD DiskUtil;
DWORD Interrupts;
} CLIENT_ALIVE, *PCLIENT_ALIVE;
typedef struct _CLIENT_SHUTDOWN {
TCHAR pc_SmartMessage;
} CLIENT_SHUTDOWN, *PCLIENT_SHUTDOWN;
typedef struct
{
TCHAR Popup[1];
}ERROR_POPUP;
typedef union _DATA {
REG_INFORMATION RI ;
REG_ADD_INFORMATION RAI;
CLIENT_ALIVE CA ;
CLIENT_SHUTDOWN CS ;
} DATA, *PDATA;
typedef struct _INFORMATION {
DWORD Type;
char Data[1];
} INFORMATION, *PINFORMATION;
typedef struct _WATCHDOG {
DWORD CsrssCommitedPages;
DWORD PercentCpuUsage;
DWORD InterruptsPerSec;
DWORD ReadWritePerSec;
} WATCHDOG, *PWATCHDOG;
typedef struct _ERRORS {
DWORD ErrCode;
CHAR Server[100];
} ERRORS, *PERRORS;
#define MAX_ERROR_ENTRIES 20
//
// Structure for parameters passed to the client alive thread
//
typedef struct _THREAD_KEEPALIVE_PARMS {
PHANDLE ppv_Handle ;
DWORD ul_DelayTimer;
DWORD ul_ConnectionState;
REG_INFORMATION struct_RegInf;
TCHAR pc_ServerName[MAX_COMPUTERNAME_LENGTH+1];
} THREAD_KEEPALIVE_PARMS, *PTHREAD_KEEPALIVE_PARMS;
//
// Exported functions: EstablishConnection(), SendInformation(),
// ReceiveInformation(), CloseConnection()
//
//DWORD
//EstablishConnection(
// IN PSERVER lpsz_ServerName OPTIONAL,
// OUT PHANDLE ppv_Handle,
// OUT PCONNECTION_INFORMATION pstruct_ConnectionInformation
// );
BOOL
SendInformation(
DWORD MsgType,
PVOID Msg,
DWORD MsgSize
);
//DWORD
//ReceiveInformation(
// IN HANDLE pv_PipeHandle,
// IN OUT PINFORMATION pstruct_Information
// );
//
// MACROS
//
//#define CloseConnection( Handle ) CloseHandle( Handle ) ? ERROR_SUCCESS : GetLastError()
//
// SOME ADDITIONAL STUFF FOR NEWCLIENT.C
//
#define MAX_SERVERS 10
#define MAXPIPENAME MAX_COMPUTERNAME_LENGTH+1+128
typedef struct {
TCHAR RegSrvs[MAX_SERVERS][MAX_COMPUTERNAME_LENGTH+1];
DWORD NumRegSrvs;
} SERVERLIST;
//
//Incase the .INI File has missing section on this....
//
//static CHAR ppc_SrvAdmins[][MAX_COMPUTERNAME_LENGTH+1] = { "NTSTRESS", "LAPILE","DRAINO","RICKTUMIPS","RAJNATH" };
//static CHAR ppc_PopUpSrvrs[][MAX_COMPUTERNAME_LENGTH+1] = { "STRESS", "RICKTU", "A-LARSO", "RAJNATH" };
//static STRESS_SHARE pstruct_DefaultStressSrvrs[] = { { MACHINE_TYPE_X86, "\\\\PEANUT\\X86STRS" },
// { MACHINE_TYPE_MIPS, "\\\\PEANUT\\MIPSSTRS" } };
extern BOOL SendAdditionalInfo;
extern REG_ADD_INFORMATION RAI;
extern REG_INFORMATION RI;
extern SERVERLIST ServerList;
extern int ActiveServer;
#define SAFECLOSEHANDLE(hX) {if (hX!=INVALID_HANDLE_VALUE) {CloseHandle(hX);hX=INVALID_HANDLE_VALUE;}}