/*
- snmp.h - Header file for the Windows SNMP API
+ * Copyright (C) 2005 Juan Lang
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+#ifndef _WINE_SNMP_H
+#define _WINE_SNMP_H
- Written by Filip Navara <xnavara@volny.cz>
+#ifndef __WINESRC__
+# include <windows.h>
+#else
+# include <windef.h>
+#endif
- References (2003-08-25):
- http://msdn.microsoft.com/library/en-us/snmp/snmp/snmp_reference.asp
+#include <pshpack4.h>
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-*/
+typedef struct {
+ BYTE *stream;
+ UINT length;
+ BOOL dynamic;
+} AsnOctetString;
-#ifndef _SNMP_H
-#define _SNMP_H
+typedef struct {
+ UINT idLength;
+ UINT *ids;
+} AsnObjectIdentifier;
-#ifndef _WINDOWS_H
-#include <windows.h>
-#endif
+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;
-#include <pshpack4.h>
+typedef struct {
+ BYTE asnType;
+ union {
+ 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;
+} AsnAny;
-#ifndef WINSNMPAPI
-#define WINSNMPAPI WINAPI
-#endif
+typedef AsnObjectIdentifier AsnObjectName;
+typedef AsnAny AsnObjectSyntax;
-#ifdef __cplusplus
-extern "C" {
-#endif
+typedef struct {
+ AsnObjectName name;
+ AsnObjectSyntax value;
+} SnmpVarBind;
-#define DEFAULT_SNMP_PORT_UDP 161
-#define DEFAULT_SNMP_PORT_IPX 36879
-#define DEFAULT_SNMPTRAP_PORT_UDP 162
-#define DEFAULT_SNMPTRAP_PORT_IPX 36880
-#ifndef _SNMP_ASN_DEFINED
-#define _SNMP_ASN_DEFINED
-#define ASN_UNIVERSAL 0x00
-#define ASN_PRIMITIVE 0x00
-#define ASN_CONSTRUCTOR 0x20
-#define ASN_APPLICATION 0x40
-#define ASN_CONTEXT 0x80
-#define ASN_PRIVATE 0xC0
-#define SNMP_PDU_GET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0)
-#define SNMP_PDU_GETNEXT (ASN_CONTEXT | ASN_CONSTRUCTOR | 1)
-#define SNMP_PDU_RESPONSE (ASN_CONTEXT | ASN_CONSTRUCTOR | 2)
-#define SNMP_PDU_SET (ASN_CONTEXT | ASN_CONSTRUCTOR | 3)
-#define SNMP_PDU_GETBULK (ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
-#define SNMP_PDU_V1TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
-#define SNMP_PDU_INFORM (ASN_CONTEXT | ASN_CONSTRUCTOR | 6)
-#define SNMP_PDU_TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 7)
-#define SNMP_PDU_REPORT (ASN_CONTEXT | ASN_CONSTRUCTOR | 8)
-#endif /* _SNMP_ASN_DEFINED */
-#define ASN_INTEGER (ASN_UNIVERSAL | ASN_PRIMITIVE | 2)
-#define ASN_BITS (ASN_UNIVERSAL | ASN_PRIMITIVE | 3)
-#define ASN_OCTETSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 4)
-#define ASN_NULL (ASN_UNIVERSAL | ASN_PRIMITIVE | 5)
-#define ASN_OBJECTIDENTIFIER (ASN_UNIVERSAL | ASN_PRIMITIVE | 6)
-#define ASN_INTEGER32 ASN_INTEGER
-#define ASN_SEQUENCE (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
-#define ASN_SEQUENCEOF ASN_SEQUENCE
-#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)
-#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)
-#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)
-#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
-#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
-#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
-#define SNMPAPI_ERROR FALSE
-#define SNMPAPI_NOERROR TRUE
-#define SNMP_LOG_SILENT 0
-#define SNMP_LOG_FATAL 1
-#define SNMP_LOG_ERROR 2
-#define SNMP_LOG_WARNING 3
-#define SNMP_LOG_TRACE 4
-#define SNMP_LOG_VERBOSE 5
-#define SNMP_OUTPUT_TO_CONSOLE 1
-#define SNMP_OUTPUT_TO_LOGFILE 2
-#define SNMP_OUTPUT_TO_EVENTLOG 4
-#define SNMP_OUTPUT_TO_DEBUGGER 8
-#define SNMP_MAX_OID_LEN 128
-#define SNMP_MEM_ALLOC_ERROR 1
-#define SNMP_BERAPI_INVALID_LENGTH 10
-#define SNMP_BERAPI_INVALID_TAG 11
-#define SNMP_BERAPI_OVERFLOW 12
-#define SNMP_BERAPI_SHORT_BUFFER 13
-#define SNMP_BERAPI_INVALID_OBJELEM 14
-#define SNMP_PDUAPI_UNRECOGNIZED_PDU 20
-#define SNMP_PDUAPI_INVALID_ES 21
-#define SNMP_PDUAPI_INVALID_GT 22
-#define SNMP_AUTHAPI_INVALID_VERSION 30
-#define SNMP_AUTHAPI_INVALID_MSG_TYPE 31
-#define SNMP_AUTHAPI_TRIV_AUTH_FAILED 32
+typedef struct {
+ SnmpVarBind *list;
+ UINT len;
+} SnmpVarBindList;
+
+#include <poppack.h>
+
+#define ASN_UNIVERSAL 0x00
+#define ASN_APPLICATION 0x40
+#define ASN_CONTEXT 0x80
+#define ASN_PRIVATE 0xc0
+#define ASN_PRIMITIVE 0x00
+#define ASN_CONSTRUCTOR 0x20
+
+#define SNMP_PDU_GET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x00)
+#define SNMP_PDU_GETNEXT (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x01)
+#define SNMP_PDU_RESPONSE (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x02)
+#define SNMP_PDU_SET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x03)
+#define SNMP_PDU_V1TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x04)
+#define SNMP_PDU_GETBULK (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x05)
+#define SNMP_PDU_INFORM (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x06)
+#define SNMP_PDU_TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x07)
+
+#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
+
+#define ASN_SEQUENCE (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
+#define ASN_SEQUENCEOF ASN_SEQUENCE
+
+#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)
+
+#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)
+
+#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)
+
+#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
+
+#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
+
+#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
+
+#define SNMP_LOG_SILENT 0
+#define SNMP_LOG_FATAL 1
+#define SNMP_LOG_ERROR 2
+#define SNMP_LOG_WARNING 3
+#define SNMP_LOG_TRACE 4
+#define SNMP_LOG_VERBOSE 5
+
+#define SNMP_OUTPUT_TO_CONSOLE 1
+#define SNMP_OUTPUT_TO_LOGFILE 2
+#define SNMP_OUTPUT_TO_EVENTLOG 4
+#define SNMP_OUTPUT_TO_DEBUGGER 8
#define DEFINE_SIZEOF(x) (sizeof(x)/sizeof((x)[0]))
#define DEFINE_OID(x) { DEFINE_SIZEOF(x),(x) }
#define DEFINE_NULLOID() { 0, NULL }
#define DEFINE_NULLOCTENTS() { NULL, 0, FALSE }
-#ifndef RC_INVOKED
+#define DEFAULT_SNMP_PORT_UDP 161
+#define DEFAULT_SNMP_PORT_IPX 36879
+#define DEFAULT_SNMPTRAP_PORT_UDP 162
+#define DEFAULT_SNMPTRAP_PORT_IPX 36880
-typedef INT SNMPAPI;
-typedef LONG AsnInteger32;
-typedef ULONG AsnUnsigned32;
-typedef ULARGE_INTEGER AsnCounter64;
-typedef AsnUnsigned32 AsnCounter32;
-typedef AsnUnsigned32 AsnGauge32;
-typedef AsnUnsigned32 AsnTimeticks;
-typedef struct {
- BYTE *stream;
- UINT length;
- BOOL dynamic;
-} AsnOctetString, AsnBits, AsnSequence, AsnImplicitSequence, AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque;
-typedef struct {
- UINT idLength;
- UINT *ids;
-} AsnObjectIdentifier, AsnObjectName;
-typedef struct {
- BYTE asnType;
- union {
- 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;
-} AsnAny, AsnObjectSyntax;
-typedef struct {
- AsnObjectName name;
- AsnObjectSyntax value;
-} SnmpVarBind;
-typedef struct {
- SnmpVarBind *list;
- UINT len;
-} SnmpVarBindList;
+#define SNMP_MAX_OID_LEN 128
-VOID WINSNMPAPI SnmpExtensionClose(void);
-BOOL WINSNMPAPI SnmpExtensionInit(DWORD,HANDLE*,AsnObjectIdentifier*);
-BOOL WINSNMPAPI SnmpExtensionInitEx(AsnObjectIdentifier*);
-BOOL WINSNMPAPI SnmpExtensionMonitor(LPVOID);
-BOOL WINSNMPAPI SnmpExtensionQuery(BYTE,SnmpVarBindList*,AsnInteger32*,AsnInteger32*);
-BOOL WINSNMPAPI SnmpExtensionQueryEx(DWORD,DWORD,SnmpVarBindList*,AsnOctetString*,AsnInteger32*,AsnInteger32*);
-BOOL WINSNMPAPI SnmpExtensionTrap(AsnObjectIdentifier*,AsnInteger32*,AsnInteger32*,AsnTimeticks*,SnmpVarBindList*);
-DWORD WINSNMPAPI SnmpSvcGetUptime(void);
-VOID WINSNMPAPI SnmpSvcSetLogLevel(INT);
-VOID WINSNMPAPI SnmpSvcSetLogType(INT);
-SNMPAPI WINSNMPAPI SnmpUtilAsnAnyCpy(AsnAny*,AsnAny*);
-VOID WINSNMPAPI SnmpUtilAsnAnyFree(AsnAny*);
-VOID WINSNMPAPI SnmpUtilDbgPrint(INT,LPSTR,...);
-LPSTR WINSNMPAPI SnmpUtilIdsToA(UINT*,UINT);
-LPVOID WINSNMPAPI SnmpUtilMemAlloc(UINT);
-VOID WINSNMPAPI SnmpUtilMemFree(LPVOID);
-LPVOID WINSNMPAPI SnmpUtilMemReAlloc(LPVOID,UINT);
-SNMPAPI WINSNMPAPI SnmpUtilOctetsCmp(AsnOctetString*,AsnOctetString*);
-SNMPAPI WINSNMPAPI SnmpUtilOctetsCpy(AsnOctetString*,AsnOctetString*);
-VOID WINSNMPAPI SnmpUtilOctetsFree(AsnOctetString*);
-SNMPAPI WINSNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*,AsnOctetString*,UINT);
-SNMPAPI WINSNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*,AsnObjectIdentifier*);
-SNMPAPI WINSNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*,AsnObjectIdentifier*);
-SNMPAPI WINSNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*,AsnObjectIdentifier*);
-VOID WINSNMPAPI SnmpUtilOidFree(AsnObjectIdentifier*);
-SNMPAPI WINSNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*,AsnObjectIdentifier*,UINT);
-LPSTR WINSNMPAPI SnmpUtilOidToA(AsnObjectIdentifier*);
-VOID WINSNMPAPI SnmpUtilPrintAsnAny(AsnAny*);
-VOID WINSNMPAPI SnmpUtilPrintOid(AsnObjectIdentifier*);
-SNMPAPI WINSNMPAPI SnmpUtilVarBindCpy( SnmpVarBind*,SnmpVarBind*);
-SNMPAPI WINSNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*,SnmpVarBindList*);
-VOID WINSNMPAPI SnmpUtilVarBindFree(SnmpVarBind*);
-VOID WINSNMPAPI SnmpUtilVarBindListFree(SnmpVarBindList*);
-
-#ifndef SNMPSTRICT
-#define SNMP_malloc SnmpUtilMemAlloc
-#define SNMP_free SnmpUtilMemFree
-#define SNMP_realloc SnmpUtilMemReAlloc
-#define SNMP_DBG_malloc SnmpUtilMemAlloc
-#define SNMP_DBG_free SnmpUtilMemFree
-#define SNMP_DBG_realloc SnmpUtilMemReAlloc
-#define SNMP_oidappend SnmpUtilOidAppend
-#define SNMP_oidcmp SnmpUtilOidCmp
-#define SNMP_oidcpy SnmpUtilOidCpy
-#define SNMP_oidfree SnmpUtilOidFree
-#define SNMP_oidncmp SnmpUtilOidNCmp
-#define SNMP_printany SnmpUtilPrintAsnAny
-#define SNMP_CopyVarBind SnmpUtilVarBindCpy
-#define SNMP_CopyVarBindList SnmpUtilVarBindListCpy
-#define SNMP_FreeVarBind SnmpUtilVarBindFree
-#define SNMP_FreeVarBindList SnmpUtilVarBindListFree
-#define ASN_RFC1155_IPADDRESS ASN_IPADDRESS
-#define ASN_RFC1155_COUNTER ASN_COUNTER32
-#define ASN_RFC1155_GAUGE ASN_GAUGE32
-#define ASN_RFC1155_TIMETICKS ASN_TIMETICKS
-#define ASN_RFC1155_OPAQUE ASN_OPAQUE
-#define ASN_RFC1213_DISPSTRING ASN_OCTETSTRING
-#define ASN_RFC1157_GETREQUEST SNMP_PDU_GET
-#define ASN_RFC1157_GETNEXTREQUEST SNMP_PDU_GETNEXT
-#define ASN_RFC1157_GETRESPONSE SNMP_PDU_RESPONSE
-#define ASN_RFC1157_SETREQUEST SNMP_PDU_SET
-#define ASN_RFC1157_TRAP SNMP_PDU_V1TRAP
-#define ASN_CONTEXTSPECIFIC ASN_CONTEXT
-#define ASN_PRIMATIVE ASN_PRIMITIVE
-#define RFC1157VarBindList SnmpVarBindList
-#define RFC1157VarBind SnmpVarBind
-#define AsnInteger AsnInteger32
-#define AsnCounter AsnCounter32
-#define AsnGauge AsnGauge32
-#endif /* SNMPSTRICT */
-
-#endif /* RC_INVOKED */
+#define SNMP_MEM_ALLOC_ERROR 0
+#define SNMP_BERAPI_INVALID_LENGTH 10
+#define SNMP_BERAPI_INVALID_TAG 11
+#define SNMP_BERAPI_OVERFLOW 12
+#define SNMP_BERAPI_SHORT_BUFFER 13
+#define SNMP_BERAPI_INVALID_OBJELEM 14
+#define SNMP_PDUAPI_UNRECOGNIZED_PDU 20
+#define SNMP_PDUAPI_INVALID_ES 21
+#define SNMP_PDUAPI_INVALID_GT 22
+#define SNMP_AUTHAPI_INVALID_VERSION 30
+#define SNMP_AUTHAPI_INVALID_MSG_TYPE 31
+#define SNMP_AUTHAPI_TRIV_AUTH_FAILED 32
+
+#define SNMPAPI_NOERROR TRUE
+#define SNMPAPI_ERROR FALSE
#ifdef __cplusplus
-}
+extern "C" {
#endif
-#include <poppack.h>
+
+BOOL WINAPI SnmpExtensionInit(DWORD dwUptimeReference,
+ HANDLE *phSubagentTrapEvent, AsnObjectIdentifier *pFirstSupportedRegion);
+BOOL WINAPI SnmpExtensionInitEx(AsnObjectIdentifier *pNextSupportedRegion);
+
+BOOL WINAPI SnmpExtensionMonitor(LPVOID pAgentMgmtData);
+
+BOOL WINAPI SnmpExtensionQuery(BYTE bPduType, SnmpVarBindList *pVarBindList,
+ AsnInteger32 *pErrorStatus, AsnInteger32 *pErrorIndex);
+BOOL WINAPI SnmpExtensionQueryEx(UINT nRequestType, UINT nTransactionId,
+ SnmpVarBindList *pVarBindList, AsnOctetString *pContextInfo,
+ AsnInteger32 *pErrorStatus, AsnInteger32 *pErrorIndex);
+
+BOOL WINAPI SnmpExtensionTrap(AsnObjectIdentifier *pEnterpriseOid,
+ AsnInteger32 *pGenericTrapId, AsnInteger32 *pSpecificTrapId,
+ AsnTimeticks *pTimeStamp, SnmpVarBindList *pVarBindList);
+
+VOID WINAPI SnmpExtensionClose(VOID);
+
+typedef BOOL (WINAPI *PFNSNMPEXTENSIONINIT)(DWORD dwUptimeReference,
+ HANDLE *phSubagentTrapEvent, AsnObjectIdentifier *pFirstSupportedRegion);
+typedef BOOL (WINAPI *PFNSNMPEXTENSIONINITEX)(
+ AsnObjectIdentifier *pNextSupportedRegion);
+
+typedef BOOL (WINAPI *PFNSNMPEXTENSIONMONITOR)(LPVOID pAgentMgmtData);
+
+typedef BOOL (WINAPI *PFNSNMPEXTENSIONQUERY)(BYTE bPduType,
+ SnmpVarBindList *pVarBindList, AsnInteger32 *pErrorStatus,
+ AsnInteger32 *pErrorIndex);
+typedef BOOL (WINAPI *PFNSNMPEXTENSIONQUERYEX)(UINT nRequestType,
+ UINT nTransactionId, SnmpVarBindList *pVarBindList,
+ AsnOctetString *pContextInfo, AsnInteger32 *pErrorStatus,
+ AsnInteger32 *pErrorIndex);
+
+typedef BOOL (WINAPI *PFNSNMPEXTENSIONTRAP)(AsnObjectIdentifier *pEnterpriseOid,
+ AsnInteger32 *pGenericTrapId, AsnInteger32 *pSpecificTrapId,
+ AsnTimeticks *pTimeStamp, SnmpVarBindList *pVarBindList);
+
+typedef VOID (WINAPI *PFNSNMPEXTENSIONCLOSE)(VOID);
+
+INT WINAPI SnmpUtilOidCpy(AsnObjectIdentifier *pOidDst,
+ AsnObjectIdentifier *pOidSrc);
+INT WINAPI SnmpUtilOidAppend(AsnObjectIdentifier *pOidDst,
+ AsnObjectIdentifier *pOidSrc);
+INT WINAPI SnmpUtilOidCmp(AsnObjectIdentifier *pOid1,
+ AsnObjectIdentifier *pOid2);
+INT WINAPI SnmpUtilOidNCmp(AsnObjectIdentifier *pOid1,
+ AsnObjectIdentifier *pOid2, UINT nSubIds);
+VOID WINAPI SnmpUtilOidFree(AsnObjectIdentifier *pOid);
+
+INT WINAPI SnmpUtilOctetsCmp(AsnOctetString *pOctets1,
+ AsnOctetString *pOctets2);
+INT WINAPI SnmpUtilOctetsNCmp(AsnOctetString *pOctets1,
+ AsnOctetString *pOctets2, UINT nChars);
+INT WINAPI SnmpUtilOctetsCpy(AsnOctetString *pOctetsDst,
+ AsnOctetString *pOctetsSrc);
+VOID WINAPI SnmpUtilOctetsFree(AsnOctetString *pOctets);
+
+INT WINAPI SnmpUtilAsnAnyCpy(AsnAny *pAnyDst, AsnAny *pAnySrc);
+VOID WINAPI SnmpUtilAsnAnyFree(AsnAny *pAny);
+
+INT WINAPI SnmpUtilVarBindCpy(SnmpVarBind *pVbDst, SnmpVarBind *pVbSrc);
+VOID WINAPI SnmpUtilVarBindFree(SnmpVarBind *pVb);
+
+INT WINAPI SnmpUtilVarBindListCpy(SnmpVarBindList *pVblDst,
+ SnmpVarBindList *pVblSrc);
+VOID WINAPI SnmpUtilVarBindListFree(SnmpVarBindList *pVbl);
+
+LPVOID WINAPI SnmpUtilMemAlloc(UINT nBytes) __WINE_ALLOC_SIZE(1);
+LPVOID WINAPI SnmpUtilMemReAlloc(LPVOID pMem, UINT nBytes) __WINE_ALLOC_SIZE(2);
+VOID WINAPI SnmpUtilMemFree(LPVOID pMem);
+
+LPSTR WINAPI SnmpUtilOidToA(AsnObjectIdentifier *Oid);
+LPSTR WINAPI SnmpUtilIdsToA(UINT *Ids, UINT IdLength);
+
+VOID WINAPI SnmpUtilPrintOid(AsnObjectIdentifier *Oid);
+VOID WINAPI SnmpUtilPrintAsnAny(AsnAny *pAny);
+
+DWORD WINAPI SnmpSvcGetUptime(VOID);
+VOID WINAPI SnmpSvcSetLogLevel(INT nLogLevel);
+VOID WINAPI SnmpSvcSetLogType(INT nLogType);
+
+VOID WINAPIV SnmpUtilDbgPrint(INT nLogLevel, LPSTR szFormat, ...);
+
+#ifdef __cplusplus
+}
#endif
+
+#endif /* _WINE_SNMP_H */