📄 snmp.h
字号:
/*++Copyright 1992 - 1998 Microsoft CorporationModule Name: snmp.hAbstract: Definitions for SNMP development.--*/#ifndef _INC_SNMP#define _INC_SNMP///////////////////////////////////////////////////////////////////////////////// //// Additional Header Files //// /////////////////////////////////////////////////////////////////////////////////#include <windows.h>#ifdef __cplusplusextern "C" {#endif///////////////////////////////////////////////////////////////////////////////// //// SNMP Type Definitions //// /////////////////////////////////////////////////////////////////////////////////#pragma pack(4)typedef struct { BYTE * stream; UINT length; BOOL dynamic; } AsnOctetString;typedef struct { UINT idLength; UINT * ids; } AsnObjectIdentifier;typedef LONG AsnInteger32;typedef ULONG AsnUnsigned32;typedef ULARGE_INTEGER AsnCounter64;typedef AsnUnsigned32 AsnCounter32;typedef AsnUnsigned32 AsnGauge32;typedef AsnUnsigned32 AsnTimeticks;typedef AsnOctetString AsnBits;typedef AsnOctetString AsnSequence;typedef AsnOctetString AsnImplicitSequence;typedef AsnOctetString AsnIPAddress;typedef AsnOctetString AsnNetworkAddress;typedef AsnOctetString AsnDisplayString;typedef AsnOctetString AsnOpaque;typedef struct { BYTE asnType; union { AsnInteger32 number; // ASN_INTEGER // ASN_INTEGER32 AsnUnsigned32 unsigned32; // ASN_UNSIGNED32 AsnCounter64 counter64; // ASN_COUNTER64 AsnOctetString string; // ASN_OCTETSTRING AsnBits bits; // ASN_BITS AsnObjectIdentifier object; // ASN_OBJECTIDENTIFIER AsnSequence sequence; // ASN_SEQUENCE AsnIPAddress address; // ASN_IPADDRESS AsnCounter32 counter; // ASN_COUNTER32 AsnGauge32 gauge; // ASN_GAUGE32 AsnTimeticks ticks; // ASN_TIMETICKS AsnOpaque arbitrary; // ASN_OPAQUE } asnValue;} AsnAny;typedef AsnObjectIdentifier AsnObjectName;typedef AsnAny AsnObjectSyntax;typedef struct { AsnObjectName name; AsnObjectSyntax value; } SnmpVarBind;typedef struct { SnmpVarBind * list; UINT len; } SnmpVarBindList;#pragma pack()#ifndef _INC_WINSNMP///////////////////////////////////////////////////////////////////////////////// //// 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///////////////////////////////////////////////////////////////////////////////// //// 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)#endif // _INC_WINSNMP///////////////////////////////////////////////////////////////////////////////// //// SNMP Simple Syntax Values //// /////////////////////////////////////////////////////////////////////////////////#define ASN_INTEGER (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x02)#define ASN_BITS (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03)#define ASN_OCTETSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x04)#define ASN_NULL (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x05)#define ASN_OBJECTIDENTIFIER (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x06)#define ASN_INTEGER32 ASN_INTEGER///////////////////////////////////////////////////////////////////////////////// //// SNMP Constructor Syntax Values //// ///////////////////////////////////////////////////////////////////////////////// #define ASN_SEQUENCE (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)#define ASN_SEQUENCEOF ASN_SEQUENCE///////////////////////////////////////////////////////////////////////////////// //// SNMP Application Syntax Values //// /////////////////////////////////////////////////////////////////////////////////#define ASN_IPADDRESS (ASN_APPLICATION | ASN_PRIMITIVE | 0x00)#define ASN_COUNTER32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x01)#define ASN_GAUGE32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x02)#define ASN_TIMETICKS (ASN_APPLICATION | ASN_PRIMITIVE | 0x03)#define ASN_OPAQUE (ASN_APPLICATION | ASN_PRIMITIVE | 0x04)#define ASN_COUNTER64 (ASN_APPLICATION | ASN_PRIMITIVE | 0x06)#define ASN_UNSIGNED32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x07)///////////////////////////////////////////////////////////////////////////////// //// SNMP Exception Conditions //// ///////////////////////////////////////////////////////////////////////////////// #define SNMP_EXCEPTION_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x00)#define SNMP_EXCEPTION_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x01)#define SNMP_EXCEPTION_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x02)///////////////////////////////////////////////////////////////////////////////// //// SNMP Request Types (used in SnmpExtensionQueryEx) //// ///////////////////////////////////////////////////////////////////////////////// #define SNMP_EXTENSION_GET SNMP_PDU_GET #define SNMP_EXTENSION_GET_NEXT SNMP_PDU_GETNEXT#define SNMP_EXTENSION_GET_BULK SNMP_PDU_GETBULK#define SNMP_EXTENSION_SET_TEST (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x0)#define SNMP_EXTENSION_SET_COMMIT SNMP_PDU_SET#define SNMP_EXTENSION_SET_UNDO (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x1)#define SNMP_EXTENSION_SET_CLEANUP (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x2)///////////////////////////////////////////////////////////////////////////////// //// SNMP Error Codes //// /////////////////////////////////////////////////////////////////////////////////#define SNMP_ERRORSTATUS_NOERROR 0#define SNMP_ERRORSTATUS_TOOBIG 1#define SNMP_ERRORSTATUS_NOSUCHNAME 2#define SNMP_ERRORSTATUS_BADVALUE 3#define SNMP_ERRORSTATUS_READONLY 4#define SNMP_ERRORSTATUS_GENERR 5#define SNMP_ERRORSTATUS_NOACCESS 6#define SNMP_ERRORSTATUS_WRONGTYPE 7#define SNMP_ERRORSTATUS_WRONGLENGTH 8#define SNMP_ERRORSTATUS_WRONGENCODING 9#define SNMP_ERRORSTATUS_WRONGVALUE 10#define SNMP_ERRORSTATUS_NOCREATION 11#define SNMP_ERRORSTATUS_INCONSISTENTVALUE 12#define SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE 13#define SNMP_ERRORSTATUS_COMMITFAILED 14#define SNMP_ERRORSTATUS_UNDOFAILED 15#define SNMP_ERRORSTATUS_AUTHORIZATIONERROR 16#define SNMP_ERRORSTATUS_NOTWRITABLE 17#define SNMP_ERRORSTATUS_INCONSISTENTNAME 18///////////////////////////////////////////////////////////////////////////////// //// SNMPv1 Trap Types //// /////////////////////////////////////////////////////////////////////////////////#define SNMP_GENERICTRAP_COLDSTART 0 #define SNMP_GENERICTRAP_WARMSTART 1#define SNMP_GENERICTRAP_LINKDOWN 2#define SNMP_GENERICTRAP_LINKUP 3#define SNMP_GENERICTRAP_AUTHFAILURE 4#define SNMP_GENERICTRAP_EGPNEIGHLOSS 5#define SNMP_GENERICTRAP_ENTERSPECIFIC 6///////////////////////////////////////////////////////////////////////////////// //// SNMP Access Types //// /////////////////////////////////////////////////////////////////////////////////#define SNMP_ACCESS_NONE 0#define SNMP_ACCESS_NOTIFY 1#define SNMP_ACCESS_READ_ONLY 2#define SNMP_ACCESS_READ_WRITE 3#define SNMP_ACCESS_READ_CREATE 4///////////////////////////////////////////////////////////////////////////////// //// SNMP API Return Code Definitions //// /////////////////////////////////////////////////////////////////////////////////#define SNMPAPI INT#define SNMP_FUNC_TYPE WINAPI#define SNMPAPI_NOERROR TRUE#define SNMPAPI_ERROR FALSE///////////////////////////////////////////////////////////////////////////////// //// SNMP Extension API Prototypes //// /////////////////////////////////////////////////////////////////////////////////BOOL SNMP_FUNC_TYPESnmpExtensionInit( DWORD dwUptimeReference, HANDLE * phSubagentTrapEvent, AsnObjectIdentifier * pFirstSupportedRegion );BOOL SNMP_FUNC_TYPESnmpExtensionInitEx( AsnObjectIdentifier * pNextSupportedRegion );BOOLSNMP_FUNC_TYPESnmpExtensionQuery( BYTE bPduType, SnmpVarBindList * pVarBindList, AsnInteger32 * pErrorStatus, AsnInteger32 * pErrorIndex );BOOLSNMP_FUNC_TYPESnmpExtensionQueryEx( UINT nRequestType, UINT nTransactionId, SnmpVarBindList * pVarBindList, AsnOctetString * pContextInfo, AsnInteger32 * pErrorStatus, AsnInteger32 * pErrorIndex );BOOL SNMP_FUNC_TYPESnmpExtensionTrap( AsnObjectIdentifier * pEnterpriseOid, AsnInteger32 * pGenericTrapId, AsnInteger32 * pSpecificTrapId, AsnTimeticks * pTimeStamp, SnmpVarBindList * pVarBindList );VOIDSNMP_FUNC_TYPESnmpExtensionClose( );///////////////////////////////////////////////////////////////////////////////// //// SNMP Extension API Type Definitions //// /////////////////////////////////////////////////////////////////////////////////typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONINIT)( DWORD dwUpTimeReference, HANDLE * phSubagentTrapEvent, AsnObjectIdentifier * pFirstSupportedRegion );typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONINITEX)( AsnObjectIdentifier * pNextSupportedRegion );typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONQUERY)( BYTE bPduType, SnmpVarBindList * pVarBindList,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -