| /** | |
| * Windows API header module | |
| * | |
| * Translated from MinGW Windows headers | |
| * | |
| * Authors: Stewart Gordon | |
| * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) | |
| * Source: $(DRUNTIMESRC core/sys/windows/_snmp.d) | |
| */ | |
| module core.sys.windows.snmp; | |
| version (Windows): | |
| import core.sys.windows.basetsd /+: HANDLE+/; | |
| import core.sys.windows.windef /+: BOOL, BYTE, DWORD, INT, LONG, UINT, ULONG+/; | |
| import core.sys.windows.winnt /+: LPSTR, LPVOID, ULARGE_INTEGER, VOID+/; | |
| // These are not documented on MSDN | |
| enum { | |
| DEFAULT_SNMP_PORT_UDP = 161, | |
| DEFAULT_SNMP_PORT_IPX = 36879, | |
| DEFAULT_SNMPTRAP_PORT_UDP = 162, | |
| DEFAULT_SNMPTRAP_PORT_IPX = 36880 | |
| } | |
| enum : BYTE { | |
| ASN_UNIVERSAL = 0x00, | |
| ASN_PRIMITIVE = 0x00, | |
| ASN_CONSTRUCTOR = 0x20, | |
| ASN_APPLICATION = 0x40, | |
| ASN_CONTEXT = 0x80, | |
| ASN_PRIVATE = 0xC0, | |
| SNMP_PDU_GET = ASN_CONTEXT | ASN_CONSTRUCTOR, | |
| SNMP_PDU_GETNEXT, | |
| SNMP_PDU_RESPONSE, | |
| SNMP_PDU_SET, | |
| SNMP_PDU_GETBULK, // = ASN_CONTEXT | ASN_CONSTRUCTOR | 4 | |
| SNMP_PDU_V1TRAP = ASN_CONTEXT | ASN_CONSTRUCTOR | 4, | |
| SNMP_PDU_INFORM = ASN_CONTEXT | ASN_CONSTRUCTOR | 6, | |
| SNMP_PDU_TRAP, | |
| SNMP_PDU_REPORT, | |
| ASN_INTEGER = ASN_UNIVERSAL | ASN_PRIMITIVE | 2, | |
| ASN_BITS, | |
| ASN_OCTETSTRING, | |
| ASN_NULL, | |
| ASN_OBJECTIDENTIFIER, // = ASN_UNIVERSAL | ASN_PRIMITIVE | 6 | |
| ASN_INTEGER32 = ASN_INTEGER, | |
| ASN_SEQUENCE = ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10, | |
| ASN_SEQUENCEOF = ASN_SEQUENCE, | |
| ASN_IPADDRESS = ASN_APPLICATION | ASN_PRIMITIVE, | |
| ASN_COUNTER32, | |
| ASN_GAUGE32, | |
| ASN_TIMETICKS, | |
| ASN_OPAQUE, // = ASN_APPLICATION | ASN_PRIMITIVE | 4 | |
| ASN_COUNTER64 = ASN_APPLICATION | ASN_PRIMITIVE | 6, | |
| ASN_UNSIGNED32, // = ASN_APPLICATION | ASN_PRIMITIVE | 7 | |
| SNMP_EXCEPTION_NOSUCHOBJECT = ASN_CONTEXT | ASN_PRIMITIVE, | |
| SNMP_EXCEPTION_NOSUCHINSTANCE, | |
| SNMP_EXCEPTION_ENDOFMIBVIEW, | |
| SNMP_EXTENSION_GET = SNMP_PDU_GET, | |
| SNMP_EXTENSION_GET_NEXT = SNMP_PDU_GETNEXT, | |
| SNMP_EXTENSION_GET_BULK = SNMP_PDU_GETBULK, | |
| SNMP_EXTENSION_SET_TEST = ASN_PRIVATE | ASN_CONSTRUCTOR, | |
| SNMP_EXTENSION_SET_COMMIT = SNMP_PDU_SET, | |
| SNMP_EXTENSION_SET_UNDO = ASN_PRIVATE | ASN_CONSTRUCTOR | 1, | |
| SNMP_EXTENSION_SET_CLEANUP | |
| } | |
| enum : AsnInteger { | |
| SNMP_ERRORSTATUS_NOERROR, | |
| SNMP_ERRORSTATUS_TOOBIG, | |
| SNMP_ERRORSTATUS_NOSUCHNAME, | |
| SNMP_ERRORSTATUS_BADVALUE, | |
| SNMP_ERRORSTATUS_READONLY, | |
| SNMP_ERRORSTATUS_GENERR, | |
| SNMP_ERRORSTATUS_NOACCESS, | |
| SNMP_ERRORSTATUS_WRONGTYPE, | |
| SNMP_ERRORSTATUS_WRONGLENGTH, | |
| SNMP_ERRORSTATUS_WRONGENCODING, | |
| SNMP_ERRORSTATUS_WRONGVALUE, | |
| SNMP_ERRORSTATUS_NOCREATION, | |
| SNMP_ERRORSTATUS_INCONSISTENTVALUE, | |
| SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE, | |
| SNMP_ERRORSTATUS_COMMITFAILED, | |
| SNMP_ERRORSTATUS_UNDOFAILED, | |
| SNMP_ERRORSTATUS_AUTHORIZATIONERROR, | |
| SNMP_ERRORSTATUS_NOTWRITABLE, | |
| SNMP_ERRORSTATUS_INCONSISTENTNAME | |
| } | |
| enum : AsnInteger { | |
| SNMP_GENERICTRAP_COLDSTART, | |
| SNMP_GENERICTRAP_WARMSTART, | |
| SNMP_GENERICTRAP_LINKDOWN, | |
| SNMP_GENERICTRAP_LINKUP, | |
| SNMP_GENERICTRAP_AUTHFAILURE, | |
| SNMP_GENERICTRAP_EGPNEIGHLOSS, | |
| SNMP_GENERICTRAP_ENTERSPECIFIC | |
| } | |
| // These are not documented on MSDN | |
| enum { | |
| SNMP_ACCESS_NONE, | |
| SNMP_ACCESS_NOTIFY, | |
| SNMP_ACCESS_READ_ONLY, | |
| SNMP_ACCESS_READ_WRITE, | |
| SNMP_ACCESS_READ_CREATE | |
| } | |
| enum : BOOL { | |
| SNMPAPI_ERROR = false, | |
| SNMPAPI_NOERROR = true | |
| } | |
| enum : INT { | |
| SNMP_LOG_SILENT, | |
| SNMP_LOG_FATAL, | |
| SNMP_LOG_ERROR, | |
| SNMP_LOG_WARNING, | |
| SNMP_LOG_TRACE, | |
| SNMP_LOG_VERBOSE | |
| } | |
| enum INT | |
| SNMP_OUTPUT_TO_CONSOLE = 1, | |
| SNMP_OUTPUT_TO_LOGFILE = 2, | |
| SNMP_OUTPUT_TO_EVENTLOG = 4, | |
| SNMP_OUTPUT_TO_DEBUGGER = 8; | |
| enum size_t SNMP_MAX_OID_LEN = 128; | |
| enum : DWORD { | |
| SNMP_MEM_ALLOC_ERROR = 1, | |
| SNMP_BERAPI_INVALID_LENGTH = 10, | |
| SNMP_BERAPI_INVALID_TAG, | |
| SNMP_BERAPI_OVERFLOW, | |
| SNMP_BERAPI_SHORT_BUFFER, | |
| SNMP_BERAPI_INVALID_OBJELEM, | |
| SNMP_PDUAPI_UNRECOGNIZED_PDU = 20, | |
| SNMP_PDUAPI_INVALID_ES, | |
| SNMP_PDUAPI_INVALID_GT, | |
| SNMP_AUTHAPI_INVALID_VERSION = 30, | |
| SNMP_AUTHAPI_INVALID_MSG_TYPE, | |
| SNMP_AUTHAPI_TRIV_AUTH_FAILED, | |
| } | |
| alias SNMPAPI = INT; | |
| alias AsnInteger32 = LONG; | |
| alias AsnUnsigned32 = ULONG, AsnCounter32 = ULONG, AsnGauge32 = ULONG, AsnTimeticks = ULONG; | |
| alias AsnCounter64 = ULARGE_INTEGER; | |
| align (4): | |
| struct AsnOctetString { | |
| align (4): | |
| BYTE* stream; | |
| UINT length; | |
| BOOL dynamic; | |
| } | |
| alias AsnBits = AsnOctetString, AsnSequence = AsnOctetString, AsnImplicitSequence = AsnOctetString, AsnIPAddress = AsnOctetString, AsnNetworkAddress = AsnOctetString, AsnDisplayString = AsnOctetString, AsnOpaque = AsnOctetString; | |
| struct AsnObjectIdentifier { | |
| align (4): | |
| UINT idLength; | |
| UINT* ids; | |
| } | |
| alias AsnObjectName = AsnObjectIdentifier; | |
| struct AsnAny { | |
| align (4): | |
| BYTE asnType; | |
| union _asnValue { | |
| AsnInteger32 number; | |
| AsnUnsigned32 unsigned32; | |
| AsnCounter64 counter64; | |
| AsnOctetString string; | |
| AsnBits bits; | |
| AsnObjectIdentifier object; | |
| AsnSequence sequence; | |
| AsnIPAddress address; | |
| AsnCounter32 counter; | |
| AsnGauge32 gauge; | |
| AsnTimeticks ticks; | |
| AsnOpaque arbitrary; | |
| } | |
| _asnValue asnValue; | |
| } | |
| alias AsnObjectSyntax = AsnAny; | |
| struct SnmpVarBind { | |
| align (4): | |
| AsnObjectName name; | |
| AsnObjectSyntax value; | |
| } | |
| struct SnmpVarBindList { | |
| align (4): | |
| SnmpVarBind* list; | |
| UINT len; | |
| } | |
| extern (Windows) { | |
| VOID SnmpExtensionClose(); | |
| BOOL SnmpExtensionInit(DWORD, HANDLE*, AsnObjectIdentifier*); | |
| BOOL SnmpExtensionInitEx(AsnObjectIdentifier*); | |
| BOOL SnmpExtensionMonitor(LPVOID); | |
| BOOL SnmpExtensionQuery(BYTE, SnmpVarBindList*, AsnInteger32*, | |
| AsnInteger32*); | |
| BOOL SnmpExtensionQueryEx(DWORD, DWORD, SnmpVarBindList*, AsnOctetString*, | |
| AsnInteger32*, AsnInteger32*); | |
| BOOL SnmpExtensionTrap(AsnObjectIdentifier*, AsnInteger32*, AsnInteger32*, | |
| AsnTimeticks*, SnmpVarBindList*); | |
| DWORD SnmpSvcGetUptime(); | |
| VOID SnmpSvcSetLogLevel(INT); | |
| VOID SnmpSvcSetLogType(INT); | |
| SNMPAPI SnmpUtilAsnAnyCpy(AsnAny*, AsnAny*); | |
| VOID SnmpUtilAsnAnyFree(AsnAny*); | |
| VOID SnmpUtilDbgPrint(INT, LPSTR, ...); | |
| LPSTR SnmpUtilIdsToA(UINT*, UINT); | |
| LPVOID SnmpUtilMemAlloc(UINT); | |
| VOID SnmpUtilMemFree(LPVOID); | |
| LPVOID SnmpUtilMemReAlloc(LPVOID, UINT); | |
| SNMPAPI SnmpUtilOctetsCmp(AsnOctetString*, AsnOctetString*); | |
| SNMPAPI SnmpUtilOctetsCpy(AsnOctetString*, AsnOctetString*); | |
| VOID SnmpUtilOctetsFree(AsnOctetString*); | |
| SNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*, AsnOctetString*, UINT); | |
| SNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*, AsnObjectIdentifier*); | |
| SNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*, AsnObjectIdentifier*); | |
| SNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*, AsnObjectIdentifier*); | |
| VOID SnmpUtilOidFree(AsnObjectIdentifier*); | |
| SNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*, AsnObjectIdentifier*, UINT); | |
| LPSTR SnmpUtilOidToA(AsnObjectIdentifier*); | |
| VOID SnmpUtilPrintAsnAny(AsnAny*); | |
| VOID SnmpUtilPrintOid(AsnObjectIdentifier*); | |
| SNMPAPI SnmpUtilVarBindCpy(SnmpVarBind*, SnmpVarBind*); | |
| SNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*, SnmpVarBindList*); | |
| VOID SnmpUtilVarBindFree(SnmpVarBind*); | |
| VOID SnmpUtilVarBindListFree(SnmpVarBindList*); | |
| } | |
| alias SNMP_malloc = SnmpUtilMemAlloc; | |
| alias SNMP_free = SnmpUtilMemFree; | |
| alias SNMP_realloc = SnmpUtilMemReAlloc; | |
| alias SNMP_DBG_malloc = SnmpUtilMemAlloc; | |
| alias SNMP_DBG_free = SnmpUtilMemFree; | |
| alias SNMP_DBG_realloc = SnmpUtilMemReAlloc; | |
| alias SNMP_oidappend = SnmpUtilOidAppend; | |
| alias SNMP_oidcmp = SnmpUtilOidCmp; | |
| alias SNMP_oidcpy = SnmpUtilOidCpy; | |
| alias SNMP_oidfree = SnmpUtilOidFree; | |
| alias SNMP_oidncmp = SnmpUtilOidNCmp; | |
| alias SNMP_printany = SnmpUtilPrintAsnAny; | |
| alias SNMP_CopyVarBind = SnmpUtilVarBindCpy; | |
| alias SNMP_CopyVarBindList = SnmpUtilVarBindListCpy; | |
| alias SNMP_FreeVarBind = SnmpUtilVarBindFree; | |
| alias SNMP_FreeVarBindList = SnmpUtilVarBindListFree; | |
| alias ASN_RFC1155_IPADDRESS = ASN_IPADDRESS; | |
| alias ASN_RFC1155_COUNTER = ASN_COUNTER32; | |
| alias ASN_RFC1155_GAUGE = ASN_GAUGE32; | |
| alias ASN_RFC1155_TIMETICKS = ASN_TIMETICKS; | |
| alias ASN_RFC1155_OPAQUE = ASN_OPAQUE; | |
| alias ASN_RFC1213_DISPSTRING = ASN_OCTETSTRING; | |
| alias ASN_RFC1157_GETREQUEST = SNMP_PDU_GET; | |
| alias ASN_RFC1157_GETNEXTREQUEST = SNMP_PDU_GETNEXT; | |
| alias ASN_RFC1157_GETRESPONSE = SNMP_PDU_RESPONSE; | |
| alias ASN_RFC1157_SETREQUEST = SNMP_PDU_SET; | |
| alias ASN_RFC1157_TRAP = SNMP_PDU_V1TRAP; | |
| alias ASN_CONTEXTSPECIFIC = ASN_CONTEXT; | |
| alias ASN_PRIMATIVE = ASN_PRIMITIVE; | |
| alias RFC1157VarBindList = SnmpVarBindList; | |
| alias RFC1157VarBind = SnmpVarBind; | |
| alias AsnInteger = AsnInteger32; | |
| alias AsnCounter = AsnCounter32; | |
| alias AsnGauge = AsnGauge32; |