/*++ Copyright (c) 1992-1997 Microsoft Corporation Module Name: globals.h Abstract: Contains global definitions for SNMP master agent. Environment: User Mode - Win32 Revision History: 10-Feb-1997 DonRyan Rewrote to implement SNMPv2 support. --*/ #ifndef _GLOBALS_H_ #define _GLOBALS_H_ /////////////////////////////////////////////////////////////////////////////// // // // Include files // // // /////////////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include #include #include #include #include #include // for UINT_MAX #include "snmpevts.h" #include "args.h" #include "mem.h" /////////////////////////////////////////////////////////////////////////////// // // // Private definitions // // // /////////////////////////////////////////////////////////////////////////////// #define SHUTDOWN_WAIT_HINT 5000 /////////////////////////////////////////////////////////////////////////////// // // // Global variables // // // /////////////////////////////////////////////////////////////////////////////// extern DWORD g_dwUpTimeReference; extern HANDLE g_hTerminationEvent; extern HANDLE g_hRegistryEvent; extern HANDLE g_hDefaultRegNotifier; extern HKEY g_hDefaultKey; extern HANDLE g_hPolicyRegNotifier; extern HKEY g_hPolicyKey; extern LIST_ENTRY g_Subagents; extern LIST_ENTRY g_SupportedRegions; extern LIST_ENTRY g_ValidCommunities; extern LIST_ENTRY g_TrapDestinations; extern LIST_ENTRY g_PermittedManagers; extern LIST_ENTRY g_IncomingTransports; extern LIST_ENTRY g_OutgoingTransports; extern CRITICAL_SECTION g_RegCriticalSectionA; extern CRITICAL_SECTION g_RegCriticalSectionB; extern CRITICAL_SECTION g_RegCriticalSectionC; extern CMD_LINE_ARGUMENTS g_CmdLineArguments; /////////////////////////////////////////////////////////////////////////////// // // // Registry definitions // // // /////////////////////////////////////////////////////////////////////////////// #define REG_POLICY_ROOT \ TEXT("SOFTWARE\\Policies") #define REG_POLICY_PARAMETERS \ TEXT("SOFTWARE\\Policies\\SNMP\\Parameters") #define REG_POLICY_VALID_COMMUNITIES \ REG_POLICY_PARAMETERS TEXT("\\ValidCommunities") #define REG_POLICY_TRAP_DESTINATIONS \ REG_POLICY_PARAMETERS TEXT("\\TrapConfiguration") #define REG_POLICY_PERMITTED_MANAGERS \ REG_POLICY_PARAMETERS TEXT("\\PermittedManagers") #define REG_KEY_SNMP_PARAMETERS \ TEXT("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters") #define REG_KEY_EXTENSION_AGENTS \ REG_KEY_SNMP_PARAMETERS TEXT("\\ExtensionAgents") #define REG_KEY_VALID_COMMUNITIES \ REG_KEY_SNMP_PARAMETERS TEXT("\\ValidCommunities") #define REG_KEY_TRAP_DESTINATIONS \ REG_KEY_SNMP_PARAMETERS TEXT("\\TrapConfiguration") #define REG_KEY_PERMITTED_MANAGERS \ REG_KEY_SNMP_PARAMETERS TEXT("\\PermittedManagers") #define REG_KEY_MIB2 \ REG_KEY_SNMP_PARAMETERS TEXT("\\RFC1156Agent") #define REG_VALUE_SUBAGENT_PATH "Pathname" #define REG_VALUE_AUTH_TRAPS TEXT("EnableAuthenticationTraps") #define REG_VALUE_MGRRES_COUNTER TEXT("NameResolutionRetries") #define REG_VALUE_SYS_OBJECTID TEXT("sysObjectID") #define MAX_VALUE_NAME_LEN 256 #define MAX_VALUE_DATA_LEN 256 /////////////////////////////////////////////////////////////////////////////// // // // Miscellaneous definitions // // // /////////////////////////////////////////////////////////////////////////////// #define PDUTYPESTRING(nPduType) \ ((nPduType == SNMP_PDU_GETNEXT) \ ? "getnext" \ : (nPduType == SNMP_PDU_GETBULK) \ ? "getbulk" \ : (nPduType == SNMP_PDU_GET) \ ? "get" \ : (nPduType == SNMP_PDU_SET) \ ? "set" \ : "unknown") #define SNMPERRORSTRING(nErr) \ ((nErr == SNMP_ERRORSTATUS_NOERROR) \ ? "NOERROR" \ : (nErr == SNMP_ERRORSTATUS_GENERR) \ ? "GENERR" \ : (nErr == SNMP_ERRORSTATUS_NOSUCHNAME) \ ? "NOSUCHNAME" \ : (nErr == SNMP_ERRORSTATUS_NOTWRITABLE) \ ? "NOTWRITABLE" \ : (nErr == SNMP_ERRORSTATUS_TOOBIG) \ ? "TOOBIG" \ : (nErr == SNMP_ERRORSTATUS_BADVALUE) \ ? "BADVALUE" \ : (nErr == SNMP_ERRORSTATUS_READONLY) \ ? "READONLY" \ : (nErr == SNMP_ERRORSTATUS_WRONGTYPE) \ ? "WRONGTYPE" \ : (nErr == SNMP_ERRORSTATUS_WRONGLENGTH) \ ? "WRONGLENGTH" \ : (nErr == SNMP_ERRORSTATUS_WRONGENCODING) \ ? "WRONGENCODING" \ : (nErr == SNMP_ERRORSTATUS_WRONGVALUE) \ ? "WRONGVALUE" \ : (nErr == SNMP_ERRORSTATUS_NOCREATION) \ ? "NOCREATION" \ : (nErr == SNMP_ERRORSTATUS_INCONSISTENTVALUE) \ ? "INCONSISTENTVALUE" \ : (nErr == SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE) \ ? "RESOURCEUNAVAILABLE" \ : (nErr == SNMP_ERRORSTATUS_COMMITFAILED) \ ? "COMMITFAILED" \ : (nErr == SNMP_ERRORSTATUS_UNDOFAILED) \ ? "UNDOFAILED" \ : (nErr == SNMP_ERRORSTATUS_AUTHORIZATIONERROR) \ ? "AUTHORIZATIONERROR" \ : (nErr == SNMP_ERRORSTATUS_NOACCESS) \ ? "NOACCESS" \ : (nErr == SNMP_ERRORSTATUS_INCONSISTENTNAME) \ ? "INCONSISTENTNAME" \ : "unknown") #endif // _GLOBALS_H_