/*++ Copyright (c) 1992-1996 Microsoft Corporation Module Name: mgmtapi.h Abstract: Definitions for SNMP Management API Development. --*/ #ifndef _INC_MGMTAPI #define _INC_MGMTAPI /////////////////////////////////////////////////////////////////////////////// // // // Additional header files // // // /////////////////////////////////////////////////////////////////////////////// #include #include #ifdef __cplusplus extern "C" { #endif /////////////////////////////////////////////////////////////////////////////// // // // MGMT API error code definitions // // // /////////////////////////////////////////////////////////////////////////////// #define SNMP_MGMTAPI_TIMEOUT 40 #define SNMP_MGMTAPI_SELECT_FDERRORS 41 #define SNMP_MGMTAPI_TRAP_ERRORS 42 #define SNMP_MGMTAPI_TRAP_DUPINIT 43 #define SNMP_MGMTAPI_NOTRAPS 44 #define SNMP_MGMTAPI_AGAIN 45 /////////////////////////////////////////////////////////////////////////////// // // // MGMT API miscellaneous definitions // // // /////////////////////////////////////////////////////////////////////////////// #define RECVBUFSIZE 4096 /////////////////////////////////////////////////////////////////////////////// // // // MGMT API type definitions // // // /////////////////////////////////////////////////////////////////////////////// typedef SOCKET SockDesc; typedef struct _SNMP_MGR_SESSION { SockDesc fd; // socket struct sockaddr destAddr; // destination agent address LPSTR community; // community name INT timeout; // comm time-out (milliseconds) INT retries; // comm retry count AsnInteger requestId; // RFC1157 requestId char recvBuf[RECVBUFSIZE]; // receive buffer } SNMP_MGR_SESSION, *LPSNMP_MGR_SESSION; /////////////////////////////////////////////////////////////////////////////// // // // MGMT API prototypes // // // /////////////////////////////////////////////////////////////////////////////// LPSNMP_MGR_SESSION SNMP_FUNC_TYPE SnmpMgrOpen( IN LPSTR lpAgentAddress, // Name/address of target agent IN LPSTR lpAgentCommunity, // Community for target agent IN INT nTimeOut, // Comm time-out in milliseconds IN INT nRetries // Comm time-out/retry count ); BOOL SNMP_FUNC_TYPE SnmpMgrClose( IN LPSNMP_MGR_SESSION session // SNMP session pointer ); SNMPAPI SNMP_FUNC_TYPE SnmpMgrRequest( IN LPSNMP_MGR_SESSION session, // SNMP session pointer IN BYTE requestType, // Get, GetNext, or Set IN OUT RFC1157VarBindList *variableBindings, // Varible bindings OUT AsnInteger *errorStatus, // Result error status OUT AsnInteger *errorIndex // Result error index ); BOOL SNMP_FUNC_TYPE SnmpMgrStrToOid( IN LPSTR string, // OID string to be converted OUT AsnObjectIdentifier *oid // OID internal representation ); BOOL SNMP_FUNC_TYPE SnmpMgrOidToStr( IN AsnObjectIdentifier *oid, // OID to be converted OUT LPSTR *string // OID string representation ); BOOL SNMP_FUNC_TYPE SnmpMgrTrapListen( OUT HANDLE *phTrapAvailable // Event indicating trap available ); BOOL SNMP_FUNC_TYPE SnmpMgrGetTrap( OUT AsnObjectIdentifier *enterprise, // Generating enterprise OUT AsnNetworkAddress *IPAddress, // Generating IP address OUT AsnInteger *genericTrap, // Generic trap type OUT AsnInteger *specificTrap, // Enterprise specific type OUT AsnTimeticks *timeStamp, // Time stamp OUT RFC1157VarBindList *variableBindings // Variable bindings ); #ifdef __cplusplus } #endif #endif // _INC_MGMTAPI