diff win32/snmp.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/win32/snmp.d	Tue Apr 05 20:44:01 2011 +0200
@@ -0,0 +1,269 @@
+/***********************************************************************\
+*                                 snmp.d                                *
+*                                                                       *
+*                       Windows API header module                       *
+*                                                                       *
+*                 Translated from MinGW Windows headers                 *
+*                           by Stewart Gordon                           *
+*                                                                       *
+*                       Placed into public domain                       *
+\***********************************************************************/
+module win32.snmp;
+
+private import win32.windows;
+
+// 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
+}
+
+const INT
+	SNMP_OUTPUT_TO_CONSOLE  = 1,
+	SNMP_OUTPUT_TO_LOGFILE  = 2,
+	SNMP_OUTPUT_TO_EVENTLOG = 4,
+	SNMP_OUTPUT_TO_DEBUGGER = 8;
+
+const 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 INT SNMPAPI;
+alias LONG AsnInteger32;
+alias ULONG AsnUnsigned32, AsnCounter32, AsnGauge32, AsnTimeticks;
+alias ULARGE_INTEGER AsnCounter64;
+
+align (4):
+
+struct AsnOctetString {
+	BYTE* stream;
+	UINT  length;
+	BOOL  dynamic;
+}
+alias AsnOctetString AsnBits, AsnSequence, AsnImplicitSequence,
+  AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque;
+
+struct AsnObjectIdentifier {
+	UINT  idLength;
+	UINT* ids;
+}
+alias AsnObjectIdentifier AsnObjectName;
+
+struct AsnAny {
+	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 AsnAny AsnObjectSyntax;
+
+struct SnmpVarBind {
+	AsnObjectName   name;
+	AsnObjectSyntax value;
+}
+
+struct SnmpVarBindList {
+	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 SnmpUtilMemAlloc SNMP_malloc;
+alias SnmpUtilMemFree SNMP_free;
+alias SnmpUtilMemReAlloc SNMP_realloc;
+alias SnmpUtilMemAlloc SNMP_DBG_malloc;
+alias SnmpUtilMemFree SNMP_DBG_free;
+alias SnmpUtilMemReAlloc SNMP_DBG_realloc;
+alias SnmpUtilOidAppend SNMP_oidappend;
+alias SnmpUtilOidCmp SNMP_oidcmp;
+alias SnmpUtilOidCpy SNMP_oidcpy;
+alias SnmpUtilOidFree SNMP_oidfree;
+alias SnmpUtilOidNCmp SNMP_oidncmp;
+alias SnmpUtilPrintAsnAny SNMP_printany;
+alias SnmpUtilVarBindCpy SNMP_CopyVarBind;
+alias SnmpUtilVarBindListCpy SNMP_CopyVarBindList;
+alias SnmpUtilVarBindFree SNMP_FreeVarBind;
+alias SnmpUtilVarBindListFree SNMP_FreeVarBindList;
+alias ASN_IPADDRESS ASN_RFC1155_IPADDRESS;
+alias ASN_COUNTER32 ASN_RFC1155_COUNTER;
+alias ASN_GAUGE32 ASN_RFC1155_GAUGE;
+alias ASN_TIMETICKS ASN_RFC1155_TIMETICKS;
+alias ASN_OPAQUE ASN_RFC1155_OPAQUE;
+alias ASN_OCTETSTRING ASN_RFC1213_DISPSTRING;
+alias SNMP_PDU_GET ASN_RFC1157_GETREQUEST;
+alias SNMP_PDU_GETNEXT ASN_RFC1157_GETNEXTREQUEST;
+alias SNMP_PDU_RESPONSE ASN_RFC1157_GETRESPONSE;
+alias SNMP_PDU_SET ASN_RFC1157_SETREQUEST;
+alias SNMP_PDU_V1TRAP ASN_RFC1157_TRAP;
+alias ASN_CONTEXT ASN_CONTEXTSPECIFIC;
+alias ASN_PRIMITIVE ASN_PRIMATIVE;
+alias SnmpVarBindList RFC1157VarBindList;
+alias SnmpVarBind RFC1157VarBind;
+alias AsnInteger32 AsnInteger;
+alias AsnCounter32 AsnCounter;
+alias AsnGauge32 AsnGauge;