This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/dm/include/WIN32/MGMTAPI.H

138 lines
5 KiB
C

/*++
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 <snmp.h>
#include <winsock.h>
#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