home *** CD-ROM | disk | FTP | other *** search
- /*++
-
- Copyright 1992 - 1998 Microsoft Corporation
-
- Module Name:
-
- winsnmp.h
-
- Abstract:
-
- Definitions for WinSNMP development.
-
- --*/
-
- #ifndef _INC_WINSNMP
- #define _INC_WINSNMP
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // Additional Header Files //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #ifndef _INC_WINDOWS
- #include <windows.h>
- #define _INC_WINDOWS
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // WinSNMP API Type Definitions //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- typedef HANDLE HSNMP_SESSION, FAR *LPHSNMP_SESSION;
- typedef HANDLE HSNMP_ENTITY, FAR *LPHSNMP_ENTITY;
- typedef HANDLE HSNMP_CONTEXT, FAR *LPHSNMP_CONTEXT;
- typedef HANDLE HSNMP_PDU, FAR *LPHSNMP_PDU;
- typedef HANDLE HSNMP_VBL, FAR *LPHSNMP_VBL;
- typedef unsigned char smiBYTE, FAR *smiLPBYTE;
- typedef signed long smiINT, FAR *smiLPINT;
- typedef smiINT smiINT32, FAR *smiLPINT32;
- typedef unsigned long smiUINT32, FAR *smiLPUINT32;
- typedef struct {
- smiUINT32 len;
- smiLPBYTE ptr;
- } smiOCTETS, FAR *smiLPOCTETS;
- typedef const smiOCTETS FAR *smiLPCOCTETS;
- typedef smiOCTETS smiBITS, FAR *smiLPBITS;
- typedef struct {
- smiUINT32 len;
- smiLPUINT32 ptr;
- } smiOID, FAR *smiLPOID;
- typedef const smiOID FAR *smiLPCOID;
- typedef smiOCTETS smiIPADDR, FAR *smiLPIPADDR;
- typedef smiUINT32 smiCNTR32, FAR *smiLPCNTR32;
- typedef smiUINT32 smiGAUGE32, FAR *smiLPGAUGE32;
- typedef smiUINT32 smiTIMETICKS, FAR *smiLPTIMETICKS;
- typedef smiOCTETS smiOPAQUE, FAR *smiLPOPAQUE;
- typedef smiOCTETS smiNSAPADDR, FAR *smiLPNSAPADDR;
- typedef struct {
- smiUINT32 hipart;
- smiUINT32 lopart;
- } smiCNTR64, FAR *smiLPCNTR64;
-
- typedef struct {
- smiUINT32 syntax;
- union {
- smiINT sNumber; // SNMP_SYNTAX_INT
- // SNMP_SYNTAX_INT32
- smiUINT32 uNumber; // SNMP_SYNTAX_UINT32
- // SNMP_SYNTAX_CNTR32
- // SNMP_SYNTAX_GAUGE32
- // SNMP_SYNTAX_TIMETICKS
- smiCNTR64 hNumber; // SNMP_SYNTAX_CNTR64
- smiOCTETS string; // SNMP_SYNTAX_OCTETS
- // SNMP_SYNTAX_BITS
- // SNMP_SYNTAX_OPAQUE
- // SNMP_SYNTAX_IPADDR
- // SNMP_SYNTAX_NSAPADDR
- smiOID oid; // SNMP_SYNTAX_OID
- smiBYTE empty; // SNMP_SYNTAX_NULL
- // SNMP_SYNTAX_NOSUCHOBJECT
- // SNMP_SYNTAX_NOSUCHINSTANCE
- // SNMP_SYNTAX_ENDOFMIBVIEW
- } value;
- } smiVALUE, FAR *smiLPVALUE;
- typedef const smiVALUE FAR *smiLPCVALUE;
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // ASN/BER Base Types //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define ASN_UNIVERSAL (0x00)
- #define ASN_APPLICATION (0x40)
- #define ASN_CONTEXT (0x80)
- #define ASN_PRIVATE (0xC0)
- #define ASN_PRIMITIVE (0x00)
- #define ASN_CONSTRUCTOR (0x20)
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // SNMP ObjectSyntax Values //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMP_SYNTAX_INT (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x02)
- #define SNMP_SYNTAX_BITS (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03)
- #define SNMP_SYNTAX_OCTETS (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x04)
- #define SNMP_SYNTAX_NULL (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x05)
- #define SNMP_SYNTAX_OID (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x06)
- #define SNMP_SYNTAX_INT32 SNMP_SYNTAX_INT
-
- #define SNMP_SYNTAX_SEQUENCE (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
-
- #define SNMP_SYNTAX_IPADDR (ASN_APPLICATION | ASN_PRIMITIVE | 0x00)
- #define SNMP_SYNTAX_CNTR32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x01)
- #define SNMP_SYNTAX_GAUGE32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x02)
- #define SNMP_SYNTAX_TIMETICKS (ASN_APPLICATION | ASN_PRIMITIVE | 0x03)
- #define SNMP_SYNTAX_OPAQUE (ASN_APPLICATION | ASN_PRIMITIVE | 0x04)
- #define SNMP_SYNTAX_NSAPADDR (ASN_APPLICATION | ASN_PRIMITIVE | 0x05)
- #define SNMP_SYNTAX_CNTR64 (ASN_APPLICATION | ASN_PRIMITIVE | 0x06)
- #define SNMP_SYNTAX_UINT32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x07)
-
- #define SNMP_SYNTAX_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x00)
- #define SNMP_SYNTAX_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x01)
- #define SNMP_SYNTAX_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x02)
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // SNMP Limits //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define MAXOBJIDSIZE 128 // Max number of components in an OID
- #define MAXOBJIDSTRSIZE 1408 // Max len of decoded MAXOBJIDSIZE OID
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // PDU Type Values //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMP_PDU_GET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)
- #define SNMP_PDU_GETNEXT (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
- #define SNMP_PDU_RESPONSE (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
- #define SNMP_PDU_SET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
- #define SNMP_PDU_V1TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
- #define SNMP_PDU_GETBULK (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
- #define SNMP_PDU_INFORM (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
- #define SNMP_PDU_TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // SNMPv1 Trap Values //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMP_TRAP_COLDSTART 0
- #define SNMP_TRAP_WARMSTART 1
- #define SNMP_TRAP_LINKDOWN 2
- #define SNMP_TRAP_LINKUP 3
- #define SNMP_TRAP_AUTHFAIL 4
- #define SNMP_TRAP_EGPNEIGHBORLOSS 5
- #define SNMP_TRAP_ENTERPRISESPECIFIC 6
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // SNMP Error Codes Returned in Error_status Field of PDU //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMP_ERROR_NOERROR 0
- #define SNMP_ERROR_TOOBIG 1
- #define SNMP_ERROR_NOSUCHNAME 2
- #define SNMP_ERROR_BADVALUE 3
- #define SNMP_ERROR_READONLY 4
- #define SNMP_ERROR_GENERR 5
- #define SNMP_ERROR_NOACCESS 6
- #define SNMP_ERROR_WRONGTYPE 7
- #define SNMP_ERROR_WRONGLENGTH 8
- #define SNMP_ERROR_WRONGENCODING 9
- #define SNMP_ERROR_WRONGVALUE 10
- #define SNMP_ERROR_NOCREATION 11
- #define SNMP_ERROR_INCONSISTENTVALUE 12
- #define SNMP_ERROR_RESOURCEUNAVAILABLE 13
- #define SNMP_ERROR_COMMITFAILED 14
- #define SNMP_ERROR_UNDOFAILED 15
- #define SNMP_ERROR_AUTHORIZATIONERROR 16
- #define SNMP_ERROR_NOTWRITABLE 17
- #define SNMP_ERROR_INCONSISTENTNAME 18
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // Values used to indicate entity/context translation modes //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMPAPI_TRANSLATED 0
- #define SNMPAPI_UNTRANSLATED_V1 1
- #define SNMPAPI_UNTRANSLATED_V2 2
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // Values used to indicate "SNMP level" supported by the implementation //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMPAPI_NO_SUPPORT 0
- #define SNMPAPI_V1_SUPPORT 1
- #define SNMPAPI_V2_SUPPORT 2
- #define SNMPAPI_M2M_SUPPORT 3
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // Values used to indicate retransmit mode in the implementation //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMPAPI_OFF 0 // Refuse support
- #define SNMPAPI_ON 1 // Request support
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // WinSNMP API Function Return Codes //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- typedef smiUINT32 SNMPAPI_STATUS; // Used for function ret values
-
- #define SNMPAPI_FAILURE 0 // Generic error code
- #define SNMPAPI_SUCCESS 1 // Generic success code
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // WinSNMP API Error Codes (for SnmpGetLastError) //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define SNMPAPI_ALLOC_ERROR 2 // Error allocating memory
- #define SNMPAPI_CONTEXT_INVALID 3 // Invalid context parameter
- #define SNMPAPI_CONTEXT_UNKNOWN 4 // Unknown context parameter
- #define SNMPAPI_ENTITY_INVALID 5 // Invalid entity parameter
- #define SNMPAPI_ENTITY_UNKNOWN 6 // Unknown entity parameter
- #define SNMPAPI_INDEX_INVALID 7 // Invalid VBL index parameter
- #define SNMPAPI_NOOP 8 // No operation performed
- #define SNMPAPI_OID_INVALID 9 // Invalid OID parameter
- #define SNMPAPI_OPERATION_INVALID 10 // Invalid/unsupported operation
- #define SNMPAPI_OUTPUT_TRUNCATED 11 // Insufficient output buf len
- #define SNMPAPI_PDU_INVALID 12 // Invalid PDU parameter
- #define SNMPAPI_SESSION_INVALID 13 // Invalid session parameter
- #define SNMPAPI_SYNTAX_INVALID 14 // Invalid syntax in smiVALUE
- #define SNMPAPI_VBL_INVALID 15 // Invalid VBL parameter
- #define SNMPAPI_MODE_INVALID 16 // Invalid mode parameter
- #define SNMPAPI_SIZE_INVALID 17 // Invalid size/length parameter
- #define SNMPAPI_NOT_INITIALIZED 18 // SnmpStartup failed/not called
- #define SNMPAPI_MESSAGE_INVALID 19 // Invalid SNMP message format
- #define SNMPAPI_HWND_INVALID 20 // Invalid Window handle
- #define SNMPAPI_OTHER_ERROR 99 // For internal/undefined errors
- #define SNMPAPI_TL_NOT_INITIALIZED 100 // TL not initialized
- #define SNMPAPI_TL_NOT_SUPPORTED 101 // TL does not support protocol
- #define SNMPAPI_TL_NOT_AVAILABLE 102 // Network subsystem has failed
- #define SNMPAPI_TL_RESOURCE_ERROR 103 // TL resource error
- #define SNMPAPI_TL_UNDELIVERABLE 104 // Destination unreachable
- #define SNMPAPI_TL_SRC_INVALID 105 // Source endpoint invalid
- #define SNMPAPI_TL_INVALID_PARAM 106 // Input parameter invalid
- #define SNMPAPI_TL_IN_USE 107 // Source endpoint in use
- #define SNMPAPI_TL_TIMEOUT 108 // No response before timeout
- #define SNMPAPI_TL_PDU_TOO_BIG 109 // PDU too big for send/receive
- #define SNMPAPI_TL_OTHER 199 // Undefined TL error
-
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // WinSNMP API Function Prototypes //
- // //
- ///////////////////////////////////////////////////////////////////////////////
-
- #define IN
- #define OUT
- #define SNMPAPI_CALL WINAPI
-
- typedef SNMPAPI_STATUS (CALLBACK *SNMPAPI_CALLBACK)(
- IN HSNMP_SESSION hSession,
- IN HWND hWnd,
- IN UINT wMsg,
- IN WPARAM wParam,
- IN LPARAM lParam,
- IN LPVOID lClientpData
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetTranslateMode(
- OUT smiLPUINT32 nTranslateMode
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSetTranslateMode(
- IN smiUINT32 nTranslateMode
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetRetransmitMode(
- OUT smiLPUINT32 nRetransmitMode
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSetRetransmitMode(
- IN smiUINT32 nRetransmitMode
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetTimeout(
- IN HSNMP_ENTITY hEntity,
- OUT smiLPTIMETICKS nPolicyTimeout,
- OUT smiLPTIMETICKS nActualTimeout
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSetTimeout(
- IN HSNMP_ENTITY hEntity,
- IN smiTIMETICKS nPolicyTimeout
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetRetry(
- IN HSNMP_ENTITY hEntity,
- OUT smiLPUINT32 nPolicyRetry,
- OUT smiLPUINT32 nActualRetry
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSetRetry(
- IN HSNMP_ENTITY hEntity,
- IN smiUINT32 nPolicyRetry
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpStartup(
- OUT smiLPUINT32 nMajorVersion,
- OUT smiLPUINT32 nMinorVersion,
- OUT smiLPUINT32 nLevel,
- OUT smiLPUINT32 nTranslateMode,
- OUT smiLPUINT32 nRetransmitMode
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpCleanup(
- );
-
- HSNMP_SESSION
- SNMPAPI_CALL
- SnmpOpen(
- IN HWND hWnd,
- IN UINT wMsg
- );
-
- HSNMP_SESSION
- SNMPAPI_CALL
- SnmpCreateSession(
- IN HWND hWnd,
- IN UINT wMsg,
- IN SNMPAPI_CALLBACK fCallBack,
- IN LPVOID lpClientData
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpClose(
- IN HSNMP_SESSION session
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSendMsg(
- IN HSNMP_SESSION session,
- IN HSNMP_ENTITY srcEntity,
- IN HSNMP_ENTITY dstEntity,
- IN HSNMP_CONTEXT context,
- IN HSNMP_PDU PDU
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpRecvMsg(
- IN HSNMP_SESSION session,
- OUT LPHSNMP_ENTITY srcEntity,
- OUT LPHSNMP_ENTITY dstEntity,
- OUT LPHSNMP_CONTEXT context,
- OUT LPHSNMP_PDU PDU
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpRegister(
- IN HSNMP_SESSION session,
- IN HSNMP_ENTITY srcEntity,
- IN HSNMP_ENTITY dstEntity,
- IN HSNMP_CONTEXT context,
- IN smiLPCOID notification,
- IN smiUINT32 state
- );
-
- HSNMP_ENTITY
- SNMPAPI_CALL
- SnmpStrToEntity(
- IN HSNMP_SESSION session,
- IN LPCSTR string
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpEntityToStr(
- IN HSNMP_ENTITY entity,
- IN smiUINT32 size,
- OUT LPSTR string
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpFreeEntity(
- IN HSNMP_ENTITY entity
- );
-
- HSNMP_CONTEXT
- SNMPAPI_CALL
- SnmpStrToContext(
- IN HSNMP_SESSION session,
- IN smiLPCOCTETS string
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpContextToStr(
- IN HSNMP_CONTEXT context,
- OUT smiLPOCTETS string
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpFreeContext(
- IN HSNMP_CONTEXT context
- );
-
- HSNMP_PDU
- SNMPAPI_CALL
- SnmpCreatePdu(
- IN HSNMP_SESSION session,
- IN smiINT PDU_type,
- IN smiINT32 request_id,
- IN smiINT error_status,
- IN smiINT error_index,
- IN HSNMP_VBL varbindlist
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetPduData(
- IN HSNMP_PDU PDU,
- OUT smiLPINT PDU_type,
- OUT smiLPINT32 request_id,
- OUT smiLPINT error_status,
- OUT smiLPINT error_index,
- OUT LPHSNMP_VBL varbindlist
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSetPduData(
- IN HSNMP_PDU PDU,
- IN const smiINT FAR *PDU_type,
- IN const smiINT32 FAR *request_id,
- IN const smiINT FAR *non_repeaters,
- IN const smiINT FAR *max_repetitions,
- IN const HSNMP_VBL FAR *varbindlist
- );
-
- HSNMP_PDU
- SNMPAPI_CALL
- SnmpDuplicatePdu(
- IN HSNMP_SESSION session,
- IN HSNMP_PDU PDU
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpFreePdu(
- IN HSNMP_PDU PDU
- );
-
- HSNMP_VBL
- SNMPAPI_CALL
- SnmpCreateVbl(
- IN HSNMP_SESSION session,
- IN smiLPCOID name,
- IN smiLPCVALUE value
- );
-
- HSNMP_VBL
- SNMPAPI_CALL
- SnmpDuplicateVbl(
- IN HSNMP_SESSION session,
- IN HSNMP_VBL vbl
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpFreeVbl(
- IN HSNMP_VBL vbl
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpCountVbl(
- IN HSNMP_VBL vbl
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetVb(
- IN HSNMP_VBL vbl,
- IN smiUINT32 index,
- OUT smiLPOID name,
- OUT smiLPVALUE value
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpSetVb(
- IN HSNMP_VBL vbl,
- IN smiUINT32 index,
- IN smiLPCOID name,
- IN smiLPCVALUE value
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpDeleteVb(
- IN HSNMP_VBL vbl,
- IN smiUINT32 index
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpGetLastError(
- IN HSNMP_SESSION session
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpStrToOid(
- IN LPCSTR string,
- OUT smiLPOID dstOID
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpOidToStr(
- IN smiLPCOID srcOID,
- IN smiUINT32 size,
- OUT LPSTR string
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpOidCopy(
- IN smiLPCOID srcOID,
- OUT smiLPOID dstOID
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpOidCompare(
- IN smiLPCOID xOID,
- IN smiLPCOID yOID,
- IN smiUINT32 maxlen,
- OUT smiLPINT result
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpEncodeMsg(
- IN HSNMP_SESSION session,
- IN HSNMP_ENTITY srcEntity,
- IN HSNMP_ENTITY dstEntity,
- IN HSNMP_CONTEXT context,
- IN HSNMP_PDU pdu,
- OUT smiLPOCTETS msgBufDesc
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpDecodeMsg(
- IN HSNMP_SESSION session,
- OUT LPHSNMP_ENTITY srcEntity,
- OUT LPHSNMP_ENTITY dstEntity,
- OUT LPHSNMP_CONTEXT context,
- OUT LPHSNMP_PDU pdu,
- IN smiLPCOCTETS msgBufDesc
- );
-
- SNMPAPI_STATUS
- SNMPAPI_CALL
- SnmpFreeDescriptor(
- IN smiUINT32 syntax,
- IN smiLPOPAQUE descriptor
- );
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif // _INC_WINSNMP
-
-