1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Stewart Gordon 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_snmp.d) 9 */ 10 /// Automatically imported and edited from the druntime module 11 /// core.sys.windows.snmp for the auto-generated win32 package. 12 module win32.snmp; 13 //version (Windows): 14 @system: 15 16 import win32.basetsd /+: HANDLE+/; 17 import win32.windef /+: BOOL, BYTE, DWORD, INT, LONG, UINT, ULONG+/; 18 import win32.winnt /+: LPSTR, LPVOID, ULARGE_INTEGER, VOID+/; 19 20 // These are not documented on MSDN 21 enum { 22 DEFAULT_SNMP_PORT_UDP = 161, 23 DEFAULT_SNMP_PORT_IPX = 36879, 24 DEFAULT_SNMPTRAP_PORT_UDP = 162, 25 DEFAULT_SNMPTRAP_PORT_IPX = 36880 26 } 27 28 enum : BYTE { 29 ASN_UNIVERSAL = 0x00, 30 ASN_PRIMITIVE = 0x00, 31 ASN_CONSTRUCTOR = 0x20, 32 ASN_APPLICATION = 0x40, 33 ASN_CONTEXT = 0x80, 34 ASN_PRIVATE = 0xC0, 35 36 SNMP_PDU_GET = ASN_CONTEXT | ASN_CONSTRUCTOR, 37 SNMP_PDU_GETNEXT, 38 SNMP_PDU_RESPONSE, 39 SNMP_PDU_SET, 40 SNMP_PDU_GETBULK, // = ASN_CONTEXT | ASN_CONSTRUCTOR | 4 41 SNMP_PDU_V1TRAP = ASN_CONTEXT | ASN_CONSTRUCTOR | 4, 42 SNMP_PDU_INFORM = ASN_CONTEXT | ASN_CONSTRUCTOR | 6, 43 SNMP_PDU_TRAP, 44 SNMP_PDU_REPORT, 45 ASN_INTEGER = ASN_UNIVERSAL | ASN_PRIMITIVE | 2, 46 ASN_BITS, 47 ASN_OCTETSTRING, 48 ASN_NULL, 49 ASN_OBJECTIDENTIFIER, // = ASN_UNIVERSAL | ASN_PRIMITIVE | 6 50 ASN_INTEGER32 = ASN_INTEGER, 51 ASN_SEQUENCE = ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10, 52 ASN_SEQUENCEOF = ASN_SEQUENCE, 53 ASN_IPADDRESS = ASN_APPLICATION | ASN_PRIMITIVE, 54 ASN_COUNTER32, 55 ASN_GAUGE32, 56 ASN_TIMETICKS, 57 ASN_OPAQUE, // = ASN_APPLICATION | ASN_PRIMITIVE | 4 58 ASN_COUNTER64 = ASN_APPLICATION | ASN_PRIMITIVE | 6, 59 ASN_UNSIGNED32, // = ASN_APPLICATION | ASN_PRIMITIVE | 7 60 SNMP_EXCEPTION_NOSUCHOBJECT = ASN_CONTEXT | ASN_PRIMITIVE, 61 SNMP_EXCEPTION_NOSUCHINSTANCE, 62 SNMP_EXCEPTION_ENDOFMIBVIEW, 63 SNMP_EXTENSION_GET = SNMP_PDU_GET, 64 SNMP_EXTENSION_GET_NEXT = SNMP_PDU_GETNEXT, 65 SNMP_EXTENSION_GET_BULK = SNMP_PDU_GETBULK, 66 SNMP_EXTENSION_SET_TEST = ASN_PRIVATE | ASN_CONSTRUCTOR, 67 SNMP_EXTENSION_SET_COMMIT = SNMP_PDU_SET, 68 SNMP_EXTENSION_SET_UNDO = ASN_PRIVATE | ASN_CONSTRUCTOR | 1, 69 SNMP_EXTENSION_SET_CLEANUP 70 } 71 72 73 enum : AsnInteger { 74 SNMP_ERRORSTATUS_NOERROR, 75 SNMP_ERRORSTATUS_TOOBIG, 76 SNMP_ERRORSTATUS_NOSUCHNAME, 77 SNMP_ERRORSTATUS_BADVALUE, 78 SNMP_ERRORSTATUS_READONLY, 79 SNMP_ERRORSTATUS_GENERR, 80 SNMP_ERRORSTATUS_NOACCESS, 81 SNMP_ERRORSTATUS_WRONGTYPE, 82 SNMP_ERRORSTATUS_WRONGLENGTH, 83 SNMP_ERRORSTATUS_WRONGENCODING, 84 SNMP_ERRORSTATUS_WRONGVALUE, 85 SNMP_ERRORSTATUS_NOCREATION, 86 SNMP_ERRORSTATUS_INCONSISTENTVALUE, 87 SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE, 88 SNMP_ERRORSTATUS_COMMITFAILED, 89 SNMP_ERRORSTATUS_UNDOFAILED, 90 SNMP_ERRORSTATUS_AUTHORIZATIONERROR, 91 SNMP_ERRORSTATUS_NOTWRITABLE, 92 SNMP_ERRORSTATUS_INCONSISTENTNAME 93 } 94 95 enum : AsnInteger { 96 SNMP_GENERICTRAP_COLDSTART, 97 SNMP_GENERICTRAP_WARMSTART, 98 SNMP_GENERICTRAP_LINKDOWN, 99 SNMP_GENERICTRAP_LINKUP, 100 SNMP_GENERICTRAP_AUTHFAILURE, 101 SNMP_GENERICTRAP_EGPNEIGHLOSS, 102 SNMP_GENERICTRAP_ENTERSPECIFIC 103 } 104 105 // These are not documented on MSDN 106 enum { 107 SNMP_ACCESS_NONE, 108 SNMP_ACCESS_NOTIFY, 109 SNMP_ACCESS_READ_ONLY, 110 SNMP_ACCESS_READ_WRITE, 111 SNMP_ACCESS_READ_CREATE 112 } 113 114 enum : BOOL { 115 SNMPAPI_ERROR = false, 116 SNMPAPI_NOERROR = true 117 } 118 119 enum : INT { 120 SNMP_LOG_SILENT, 121 SNMP_LOG_FATAL, 122 SNMP_LOG_ERROR, 123 SNMP_LOG_WARNING, 124 SNMP_LOG_TRACE, 125 SNMP_LOG_VERBOSE 126 } 127 128 enum INT 129 SNMP_OUTPUT_TO_CONSOLE = 1, 130 SNMP_OUTPUT_TO_LOGFILE = 2, 131 SNMP_OUTPUT_TO_EVENTLOG = 4, 132 SNMP_OUTPUT_TO_DEBUGGER = 8; 133 134 enum size_t SNMP_MAX_OID_LEN = 128; 135 136 enum : DWORD { 137 SNMP_MEM_ALLOC_ERROR = 1, 138 SNMP_BERAPI_INVALID_LENGTH = 10, 139 SNMP_BERAPI_INVALID_TAG, 140 SNMP_BERAPI_OVERFLOW, 141 SNMP_BERAPI_SHORT_BUFFER, 142 SNMP_BERAPI_INVALID_OBJELEM, 143 SNMP_PDUAPI_UNRECOGNIZED_PDU = 20, 144 SNMP_PDUAPI_INVALID_ES, 145 SNMP_PDUAPI_INVALID_GT, 146 SNMP_AUTHAPI_INVALID_VERSION = 30, 147 SNMP_AUTHAPI_INVALID_MSG_TYPE, 148 SNMP_AUTHAPI_TRIV_AUTH_FAILED, 149 } 150 151 alias INT SNMPAPI; 152 alias LONG AsnInteger32; 153 alias ULONG AsnUnsigned32, AsnCounter32, AsnGauge32, AsnTimeticks; 154 alias ULARGE_INTEGER AsnCounter64; 155 156 align (4): 157 158 struct AsnOctetString { 159 align (4): 160 BYTE* stream; 161 UINT length; 162 BOOL dynamic; 163 } 164 alias AsnOctetString AsnBits, AsnSequence, AsnImplicitSequence, 165 AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque; 166 167 struct AsnObjectIdentifier { 168 align (4): 169 UINT idLength; 170 UINT* ids; 171 } 172 alias AsnObjectIdentifier AsnObjectName; 173 174 struct AsnAny { 175 align (4): 176 BYTE asnType; 177 union _asnValue { 178 AsnInteger32 number; 179 AsnUnsigned32 unsigned32; 180 AsnCounter64 counter64; 181 AsnOctetString string; 182 AsnBits bits; 183 AsnObjectIdentifier object; 184 AsnSequence sequence; 185 AsnIPAddress address; 186 AsnCounter32 counter; 187 AsnGauge32 gauge; 188 AsnTimeticks ticks; 189 AsnOpaque arbitrary; 190 } 191 _asnValue asnValue; 192 } 193 alias AsnAny AsnObjectSyntax; 194 195 struct SnmpVarBind { 196 align (4): 197 AsnObjectName name; 198 AsnObjectSyntax value; 199 } 200 201 struct SnmpVarBindList { 202 align (4): 203 SnmpVarBind* list; 204 UINT len; 205 } 206 207 extern (Windows) { 208 VOID SnmpExtensionClose(); 209 BOOL SnmpExtensionInit(DWORD, HANDLE*, AsnObjectIdentifier*); 210 BOOL SnmpExtensionInitEx(AsnObjectIdentifier*); 211 BOOL SnmpExtensionMonitor(LPVOID); 212 BOOL SnmpExtensionQuery(BYTE, SnmpVarBindList*, AsnInteger32*, 213 AsnInteger32*); 214 BOOL SnmpExtensionQueryEx(DWORD, DWORD, SnmpVarBindList*, AsnOctetString*, 215 AsnInteger32*, AsnInteger32*); 216 BOOL SnmpExtensionTrap(AsnObjectIdentifier*, AsnInteger32*, AsnInteger32*, 217 AsnTimeticks*, SnmpVarBindList*); 218 DWORD SnmpSvcGetUptime(); 219 VOID SnmpSvcSetLogLevel(INT); 220 VOID SnmpSvcSetLogType(INT); 221 SNMPAPI SnmpUtilAsnAnyCpy(AsnAny*, AsnAny*); 222 VOID SnmpUtilAsnAnyFree(AsnAny*); 223 VOID SnmpUtilDbgPrint(INT, LPSTR, ...); 224 LPSTR SnmpUtilIdsToA(UINT*, UINT); 225 LPVOID SnmpUtilMemAlloc(UINT); 226 VOID SnmpUtilMemFree(LPVOID); 227 LPVOID SnmpUtilMemReAlloc(LPVOID, UINT); 228 SNMPAPI SnmpUtilOctetsCmp(AsnOctetString*, AsnOctetString*); 229 SNMPAPI SnmpUtilOctetsCpy(AsnOctetString*, AsnOctetString*); 230 VOID SnmpUtilOctetsFree(AsnOctetString*); 231 SNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*, AsnOctetString*, UINT); 232 SNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*, AsnObjectIdentifier*); 233 SNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*, AsnObjectIdentifier*); 234 SNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*, AsnObjectIdentifier*); 235 VOID SnmpUtilOidFree(AsnObjectIdentifier*); 236 SNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*, AsnObjectIdentifier*, UINT); 237 LPSTR SnmpUtilOidToA(AsnObjectIdentifier*); 238 VOID SnmpUtilPrintAsnAny(AsnAny*); 239 VOID SnmpUtilPrintOid(AsnObjectIdentifier*); 240 SNMPAPI SnmpUtilVarBindCpy(SnmpVarBind*, SnmpVarBind*); 241 SNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*, SnmpVarBindList*); 242 VOID SnmpUtilVarBindFree(SnmpVarBind*); 243 VOID SnmpUtilVarBindListFree(SnmpVarBindList*); 244 } 245 246 alias SnmpUtilMemAlloc SNMP_malloc; 247 alias SnmpUtilMemFree SNMP_free; 248 alias SnmpUtilMemReAlloc SNMP_realloc; 249 alias SnmpUtilMemAlloc SNMP_DBG_malloc; 250 alias SnmpUtilMemFree SNMP_DBG_free; 251 alias SnmpUtilMemReAlloc SNMP_DBG_realloc; 252 alias SnmpUtilOidAppend SNMP_oidappend; 253 alias SnmpUtilOidCmp SNMP_oidcmp; 254 alias SnmpUtilOidCpy SNMP_oidcpy; 255 alias SnmpUtilOidFree SNMP_oidfree; 256 alias SnmpUtilOidNCmp SNMP_oidncmp; 257 alias SnmpUtilPrintAsnAny SNMP_printany; 258 alias SnmpUtilVarBindCpy SNMP_CopyVarBind; 259 alias SnmpUtilVarBindListCpy SNMP_CopyVarBindList; 260 alias SnmpUtilVarBindFree SNMP_FreeVarBind; 261 alias SnmpUtilVarBindListFree SNMP_FreeVarBindList; 262 alias ASN_IPADDRESS ASN_RFC1155_IPADDRESS; 263 alias ASN_COUNTER32 ASN_RFC1155_COUNTER; 264 alias ASN_GAUGE32 ASN_RFC1155_GAUGE; 265 alias ASN_TIMETICKS ASN_RFC1155_TIMETICKS; 266 alias ASN_OPAQUE ASN_RFC1155_OPAQUE; 267 alias ASN_OCTETSTRING ASN_RFC1213_DISPSTRING; 268 alias SNMP_PDU_GET ASN_RFC1157_GETREQUEST; 269 alias SNMP_PDU_GETNEXT ASN_RFC1157_GETNEXTREQUEST; 270 alias SNMP_PDU_RESPONSE ASN_RFC1157_GETRESPONSE; 271 alias SNMP_PDU_SET ASN_RFC1157_SETREQUEST; 272 alias SNMP_PDU_V1TRAP ASN_RFC1157_TRAP; 273 alias ASN_CONTEXT ASN_CONTEXTSPECIFIC; 274 alias ASN_PRIMITIVE ASN_PRIMATIVE; 275 alias SnmpVarBindList RFC1157VarBindList; 276 alias SnmpVarBind RFC1157VarBind; 277 alias AsnInteger32 AsnInteger; 278 alias AsnCounter32 AsnCounter; 279 alias AsnGauge32 AsnGauge;