1 {******************************************************************************}
2 { }
3 { Simple Network Management Protocol API interface Unit for Object Pascal }
4 { }
5 { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
6 { Corporation. All Rights Reserved. }
7 { }
8 { The original file is: snmp.h, released October 2001. The original Pascal }
9 { code is: SNMP.pas, released October 2001. The initial developer of the }
10 { Pascal code is Petr Vones (petr dott v att mujmail dott cz). }
11 { }
12 { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
13 { Marcel van Brakel. All Rights Reserved. }
14 { }
15 { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
16 { }
17 { You may retrieve the latest version of this file at the Project JEDI }
18 { APILIB home page, located at http://jedi-apilib.sourceforge.net }
19 { }
20 { The contents of this file are used with permission, subject to the Mozilla }
21 { Public License Version 1.1 (the "License"); you may not use this file except }
22 { in compliance with the License. You may obtain a copy of the License at }
23 { http://www.mozilla.org/MPL/MPL-1.1.html }
24 { }
25 { Software distributed under the License is distributed on an "AS IS" basis, }
26 { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
27 { the specific language governing rights and limitations under the License. }
28 { }
29 { Alternatively, the contents of this file may be used under the terms of the }
30 { GNU Lesser General Public License (the "LGPL License"), in which case the }
31 { provisions of the LGPL License are applicable instead of those above. }
32 { If you wish to allow use of your version of this file only under the terms }
33 { of the LGPL License and not to allow others to use your version of this file }
34 { under the MPL, indicate your decision by deleting the provisions above and }
35 { replace them with the notice and other provisions required by the LGPL }
36 { License. If you do not delete the provisions above, a recipient may use }
37 { your version of this file under either the MPL or the LGPL License. }
38 { }
39 { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
40 { }
41 {******************************************************************************}
42
43 // $Id: JwaSnmp.pas,v 1.11 2007/09/05 11:58:52 dezipaitor Exp $
44 {$IFNDEF JWA_OMIT_SECTIONS}
45 unit JwaSnmp;
46
47 {$WEAKPACKAGEUNIT}
48 {$ENDIF JWA_OMIT_SECTIONS}
49
50 {$HPPEMIT ''}
51 {$HPPEMIT '#include "snmp.h"'}
52 {$HPPEMIT ''}
53
54 {$IFNDEF JWA_OMIT_SECTIONS}
55 {$I jediapilib.inc}
56
57 interface
58
59 uses
60 JwaWinType;
61 {$ENDIF JWA_OMIT_SECTIONS}
62 {$IFNDEF JWA_IMPLEMENTATIONSECTION}
63
64 type
65 PAsnOctetString = ^TAsnOctetString;
66 TAsnOctetString = record
67 stream: PChar;
68 length: UINT;
69 dynamic_: BOOL;
70 end;
71 {$EXTERNALSYM TAsnOctetString}
72
73 PAsnObjectIdentifier = ^TAsnObjectIdentifier;
74 TAsnObjectIdentifier = record
75 idLength: UINT;
76 ids: PUINT;
77 end;
78 {$EXTERNALSYM TAsnObjectIdentifier}
79
80 TAsnInteger32 = LONG;
81 {$EXTERNALSYM TAsnInteger32}
82 TAsnUnsigned32 = ULONG;
83 {$EXTERNALSYM TAsnUnsigned32}
84 TAsnCounter64 = ULARGE_INTEGER;
85 {$EXTERNALSYM TAsnCounter64}
86 TAsnCounter32 = TAsnUnsigned32;
87 {$EXTERNALSYM TAsnCounter32}
88 TAsnGauge32 = TAsnUnsigned32;
89 {$EXTERNALSYM TAsnGauge32}
90 TAsnTimeticks = TAsnUnsigned32;
91 {$EXTERNALSYM TAsnTimeticks}
92 TAsnBits = TAsnOctetString;
93 {$EXTERNALSYM TAsnBits}
94 TAsnSequence = TAsnOctetString;
95 {$EXTERNALSYM TAsnSequence}
96 TAsnImplicitSequence = TAsnOctetString;
97 {$EXTERNALSYM TAsnImplicitSequence}
98 TAsnIPAddress = TAsnOctetString;
99 {$EXTERNALSYM TAsnIPAddress}
100 TAsnNetworkAddress = TAsnOctetString;
101 {$EXTERNALSYM TAsnNetworkAddress}
102 TAsnDisplayString = TAsnOctetString;
103 {$EXTERNALSYM TAsnDisplayString}
104 TAsnOpaque = TAsnOctetString;
105 {$EXTERNALSYM TAsnOpaque}
106
107 PAsnAny = ^TAsnAny;
108 TAsnAny = record
109 asnType: Byte;
110 case Integer of
111 0: (number: TAsnInteger32); // ASN_INTEGER, ASN_INTEGER32
112 1: (unsigned32: TAsnUnsigned32); // ASN_UNSIGNED32
113 2: (counter64: TAsnCounter64); // ASN_COUNTER64
114 3: (string_: TAsnOctetString); // ASN_OCTETSTRING
115 4: (bits: TAsnBits); // ASN_BITS
116 5: (object_: TAsnObjectIdentifier); // ASN_OBJECTIDENTIFIER
117 6: (sequence: TAsnSequence); // ASN_SEQUENCE
118 7: (address: TAsnIPAddress); // ASN_IPADDRESS
119 8: (counter: TAsnCounter32); // ASN_COUNTER32
120 9: (gauge: TAsnGauge32); // ASN_GAUGE32
121 10: (ticks: TAsnTimeticks); // ASN_TIMETICKS
122 11: (arbitrary: TAsnOpaque); // ASN_OPAQUE
123 end;
124 {$EXTERNALSYM TAsnAny}
125
126 TAsnObjectName = TAsnObjectIdentifier;
127 {$EXTERNALSYM TAsnObjectName}
128 TAsnObjectSyntax = TAsnAny;
129 {$EXTERNALSYM TAsnObjectSyntax}
130
131 PSnmpVarBind = ^TSnmpVarBind;
132 TSnmpVarBind = record
133 name: TAsnObjectName;
134 value: TAsnObjectSyntax;
135 end;
136 {$EXTERNALSYM TSnmpVarBind}
137
138 PSnmpVarBindList = ^TSnmpVarBindList;
139 TSnmpVarBindList = record
140 list: PSnmpVarBind;
141 len: UINT;
142 end;
143 {$EXTERNALSYM TSnmpVarBindList}
144
145 const
146 // (rom) deactivated seems useless
147 { IFNDEF _INC_WINSNMP}
148
149 { ASN/BER Base Types }
150
151 ASN_UNIVERSAL = $00;
152 {$EXTERNALSYM ASN_UNIVERSAL}
153 ASN_APPLICATION = $40;
154 {$EXTERNALSYM ASN_APPLICATION}
155 ASN_CONTEXT = $80;
156 {$EXTERNALSYM ASN_CONTEXT}
157 ASN_PRIVATE = $C0;
158 {$EXTERNALSYM ASN_PRIVATE}
159
160 ASN_PRIMITIVE = $00;
161 {$EXTERNALSYM ASN_PRIMITIVE}
162 ASN_CONSTRUCTOR = $20;
163 {$EXTERNALSYM ASN_CONSTRUCTOR}
164
165 { PDU Type Values }
166
167 SNMP_PDU_GET = ASN_CONTEXT or ASN_CONSTRUCTOR or $0;
168 {$EXTERNALSYM SNMP_PDU_GET}
169 SNMP_PDU_GETNEXT = ASN_CONTEXT or ASN_CONSTRUCTOR or $1;
170 {$EXTERNALSYM SNMP_PDU_GETNEXT}
171 SNMP_PDU_RESPONSE = ASN_CONTEXT or ASN_CONSTRUCTOR or $2;
172 {$EXTERNALSYM SNMP_PDU_RESPONSE}
173 SNMP_PDU_SET = ASN_CONTEXT or ASN_CONSTRUCTOR or $3;
174 {$EXTERNALSYM SNMP_PDU_SET}
175 SNMP_PDU_V1TRAP = ASN_CONTEXT or ASN_CONSTRUCTOR or $4;
176 {$EXTERNALSYM SNMP_PDU_V1TRAP}
177 SNMP_PDU_GETBULK = ASN_CONTEXT or ASN_CONSTRUCTOR or $5;
178 {$EXTERNALSYM SNMP_PDU_GETBULK}
179 SNMP_PDU_INFORM = ASN_CONTEXT or ASN_CONSTRUCTOR or $6;
180 {$EXTERNALSYM SNMP_PDU_INFORM}
181 SNMP_PDU_TRAP = ASN_CONTEXT or ASN_CONSTRUCTOR or $7;
182 {$EXTERNALSYM SNMP_PDU_TRAP}
183
184 // (rom) deactivated seems useless
185 { ENDIF _INC_WINSNMP}
186
187 { SNMP Simple Syntax Values }
188
189 ASN_INTEGER = ASN_UNIVERSAL or ASN_PRIMITIVE or $02;
190 {$EXTERNALSYM ASN_INTEGER}
191 ASN_BITS = ASN_UNIVERSAL or ASN_PRIMITIVE or $03;
192 {$EXTERNALSYM ASN_BITS}
193 ASN_OCTETSTRING = ASN_UNIVERSAL or ASN_PRIMITIVE or $04;
194 {$EXTERNALSYM ASN_OCTETSTRING}
195 ASN_NULL = ASN_UNIVERSAL or ASN_PRIMITIVE or $05;
196 {$EXTERNALSYM ASN_NULL}
197 ASN_OBJECTIDENTIFIER = ASN_UNIVERSAL or ASN_PRIMITIVE or $06;
198 {$EXTERNALSYM ASN_OBJECTIDENTIFIER}
199 ASN_INTEGER32 = ASN_INTEGER;
200 {$EXTERNALSYM ASN_INTEGER32}
201
202 { SNMP Constructor Syntax Values }
203
204 ASN_SEQUENCE = ASN_UNIVERSAL or ASN_CONSTRUCTOR or $10;
205 {$EXTERNALSYM ASN_SEQUENCE}
206 ASN_SEQUENCEOF = ASN_SEQUENCE;
207 {$EXTERNALSYM ASN_SEQUENCEOF}
208
209 { SNMP Application Syntax Values }
210
211 ASN_IPADDRESS = ASN_APPLICATION or ASN_PRIMITIVE or $00;
212 {$EXTERNALSYM ASN_IPADDRESS}
213 ASN_COUNTER32 = ASN_APPLICATION or ASN_PRIMITIVE or $01;
214 {$EXTERNALSYM ASN_COUNTER32}
215 ASN_GAUGE32 = ASN_APPLICATION or ASN_PRIMITIVE or $02;
216 {$EXTERNALSYM ASN_GAUGE32}
217 ASN_TIMETICKS = ASN_APPLICATION or ASN_PRIMITIVE or $03;
218 {$EXTERNALSYM ASN_TIMETICKS}
219 ASN_OPAQUE = ASN_APPLICATION or ASN_PRIMITIVE or $04;
220 {$EXTERNALSYM ASN_OPAQUE}
221 ASN_COUNTER64 = ASN_APPLICATION or ASN_PRIMITIVE or $06;
222 {$EXTERNALSYM ASN_COUNTER64}
223 ASN_UINTEGER32 = ASN_APPLICATION or ASN_PRIMITIVE or $07;
224 {$EXTERNALSYM ASN_UINTEGER32}
225 ASN_RFC2578_UNSIGNED32 = ASN_GAUGE32;
226 {$EXTERNALSYM ASN_RFC2578_UNSIGNED32}
227
228 { SNMP Exception Conditions }
229
230 SNMP_EXCEPTION_NOSUCHOBJECT = ASN_CONTEXT or ASN_PRIMITIVE or $00;
231 {$EXTERNALSYM SNMP_EXCEPTION_NOSUCHOBJECT}
232 SNMP_EXCEPTION_NOSUCHINSTANCE = ASN_CONTEXT or ASN_PRIMITIVE or $01;
233 {$EXTERNALSYM SNMP_EXCEPTION_NOSUCHINSTANCE}
234 SNMP_EXCEPTION_ENDOFMIBVIEW = ASN_CONTEXT or ASN_PRIMITIVE or $02;
235 {$EXTERNALSYM SNMP_EXCEPTION_ENDOFMIBVIEW}
236
237 { SNMP Request Types (used in SnmpExtensionQueryEx) }
238
239 SNMP_EXTENSION_GET = SNMP_PDU_GET;
240 {$EXTERNALSYM SNMP_EXTENSION_GET}
241 SNMP_EXTENSION_GET_NEXT = SNMP_PDU_GETNEXT;
242 {$EXTERNALSYM SNMP_EXTENSION_GET_NEXT}
243 SNMP_EXTENSION_GET_BULK = SNMP_PDU_GETBULK;
244 {$EXTERNALSYM SNMP_EXTENSION_GET_BULK}
245 SNMP_EXTENSION_SET_TEST = ASN_PRIVATE or ASN_CONSTRUCTOR or $0;
246 {$EXTERNALSYM SNMP_EXTENSION_SET_TEST}
247 SNMP_EXTENSION_SET_COMMIT = SNMP_PDU_SET;
248 {$EXTERNALSYM SNMP_EXTENSION_SET_COMMIT}
249 SNMP_EXTENSION_SET_UNDO = ASN_PRIVATE or ASN_CONSTRUCTOR or $1;
250 {$EXTERNALSYM SNMP_EXTENSION_SET_UNDO}
251 SNMP_EXTENSION_SET_CLEANUP = ASN_PRIVATE or ASN_CONSTRUCTOR or $2;
252 {$EXTERNALSYM SNMP_EXTENSION_SET_CLEANUP}
253
254 { SNMP Error Codes }
255
256 SNMP_ERRORSTATUS_NOERROR = 0;
257 {$EXTERNALSYM SNMP_ERRORSTATUS_NOERROR}
258 SNMP_ERRORSTATUS_TOOBIG = 1;
259 {$EXTERNALSYM SNMP_ERRORSTATUS_TOOBIG}
260 SNMP_ERRORSTATUS_NOSUCHNAME = 2;
261 {$EXTERNALSYM SNMP_ERRORSTATUS_NOSUCHNAME}
262 SNMP_ERRORSTATUS_BADVALUE = 3;
263 {$EXTERNALSYM SNMP_ERRORSTATUS_BADVALUE}
264 SNMP_ERRORSTATUS_READONLY = 4;
265 {$EXTERNALSYM SNMP_ERRORSTATUS_READONLY}
266 SNMP_ERRORSTATUS_GENERR = 5;
267 {$EXTERNALSYM SNMP_ERRORSTATUS_GENERR}
268 SNMP_ERRORSTATUS_NOACCESS = 6;
269 {$EXTERNALSYM SNMP_ERRORSTATUS_NOACCESS}
270 SNMP_ERRORSTATUS_WRONGTYPE = 7;
271 {$EXTERNALSYM SNMP_ERRORSTATUS_WRONGTYPE}
272 SNMP_ERRORSTATUS_WRONGLENGTH = 8;
273 {$EXTERNALSYM SNMP_ERRORSTATUS_WRONGLENGTH}
274 SNMP_ERRORSTATUS_WRONGENCODING = 9;
275 {$EXTERNALSYM SNMP_ERRORSTATUS_WRONGENCODING}
276 SNMP_ERRORSTATUS_WRONGVALUE = 10;
277 {$EXTERNALSYM SNMP_ERRORSTATUS_WRONGVALUE}
278 SNMP_ERRORSTATUS_NOCREATION = 11;
279 {$EXTERNALSYM SNMP_ERRORSTATUS_NOCREATION}
280 SNMP_ERRORSTATUS_INCONSISTENTVALUE = 12;
281 {$EXTERNALSYM SNMP_ERRORSTATUS_INCONSISTENTVALUE}
282 SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE = 13;
283 {$EXTERNALSYM SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE}
284 SNMP_ERRORSTATUS_COMMITFAILED = 14;
285 {$EXTERNALSYM SNMP_ERRORSTATUS_COMMITFAILED}
286 SNMP_ERRORSTATUS_UNDOFAILED = 15;
287 {$EXTERNALSYM SNMP_ERRORSTATUS_UNDOFAILED}
288 SNMP_ERRORSTATUS_AUTHORIZATIONERROR = 16;
289 {$EXTERNALSYM SNMP_ERRORSTATUS_AUTHORIZATIONERROR}
290 SNMP_ERRORSTATUS_NOTWRITABLE = 17;
291 {$EXTERNALSYM SNMP_ERRORSTATUS_NOTWRITABLE}
292 SNMP_ERRORSTATUS_INCONSISTENTNAME = 18;
293 {$EXTERNALSYM SNMP_ERRORSTATUS_INCONSISTENTNAME}
294
295 { SNMPv1 Trap Types }
296
297 SNMP_GENERICTRAP_COLDSTART = 0;
298 {$EXTERNALSYM SNMP_GENERICTRAP_COLDSTART}
299 SNMP_GENERICTRAP_WARMSTART = 1;
300 {$EXTERNALSYM SNMP_GENERICTRAP_WARMSTART}
301 SNMP_GENERICTRAP_LINKDOWN = 2;
302 {$EXTERNALSYM SNMP_GENERICTRAP_LINKDOWN}
303 SNMP_GENERICTRAP_LINKUP = 3;
304 {$EXTERNALSYM SNMP_GENERICTRAP_LINKUP}
305 SNMP_GENERICTRAP_AUTHFAILURE = 4;
306 {$EXTERNALSYM SNMP_GENERICTRAP_AUTHFAILURE}
307 SNMP_GENERICTRAP_EGPNEIGHLOSS = 5;
308 {$EXTERNALSYM SNMP_GENERICTRAP_EGPNEIGHLOSS}
309 SNMP_GENERICTRAP_ENTERSPECIFIC = 6;
310 {$EXTERNALSYM SNMP_GENERICTRAP_ENTERSPECIFIC}
311
312 { SNMP Access Types }
313
314 SNMP_ACCESS_NONE = 0;
315 {$EXTERNALSYM SNMP_ACCESS_NONE}
316 SNMP_ACCESS_NOTIFY = 1;
317 {$EXTERNALSYM SNMP_ACCESS_NOTIFY}
318 SNMP_ACCESS_READ_ONLY = 2;
319 {$EXTERNALSYM SNMP_ACCESS_READ_ONLY}
320 SNMP_ACCESS_READ_WRITE = 3;
321 {$EXTERNALSYM SNMP_ACCESS_READ_WRITE}
322 SNMP_ACCESS_READ_CREATE = 4;
323 {$EXTERNALSYM SNMP_ACCESS_READ_CREATE}
324
325 { SNMP API Return Code Definitions }
326
327 type
328 SNMPAPI = Integer;
329 {$EXTERNALSYM SNMPAPI}
330
331 const
332 SNMPAPI_NOERROR = True;
333 {$EXTERNALSYM SNMPAPI_NOERROR}
334 SNMPAPI_ERROR = False;
335 {$EXTERNALSYM SNMPAPI_ERROR}
336
337 { SNMP Extension API Type Definitions }
338
339 type
wUptimeReferencenull340 TSnmpExtensionInit = function(dwUptimeReference: DWORD; var phSubagentTrapEvent: HANDLE;
341 var pFirstSupportedRegion: PAsnObjectIdentifier): BOOL; stdcall;
342
arnull343 TSnmpExtensionInitEx = function(var pNextSupportedRegion: PAsnObjectIdentifier): BOOL; stdcall;
344
AgentMgmtDatanull345 TSnmpExtensionMonitor = function(pAgentMgmtData: LPVOID): BOOL; stdcall;
346
PduTypenull347 TSnmpExtensionQuery = function(bPduType: Byte; var pVarBindList: TSnmpVarBindList;
348 var pErrorStatus: TAsnInteger32; var pErrorIndex: TAsnInteger32): BOOL; stdcall;
349
RequestTypenull350 TSnmpExtensionQueryEx = function(nRequestType: UINT; nTransactionId: UINT; var pVarBindList: PSnmpVarBindList;
351 var pContextInfo: PAsnOctetString; var pErrorStatus: TAsnInteger32; var pErrorIndex: TAsnInteger32): BOOL; stdcall;
352
EnterpriseOidnull353 TSnmpExtensionTrap = function(pEnterpriseOid: PAsnObjectIdentifier; var pGenericTrapId: TAsnInteger32;
354 var pSpecificTrapId: TAsnInteger32; var pTimeStamp: TAsnTimeticks; var pVarBindList: PSnmpVarBindList): BOOL; stdcall;
355
356 TSnmpExtensionClose = procedure; stdcall;
357
358 { SNMP API Prototypes }
359
SnmpUtilOidCpynull360 function SnmpUtilOidCpy(pOidDst: PAsnObjectIdentifier; pOidSrc: PAsnObjectIdentifier): SNMPAPI; stdcall;
361 {$EXTERNALSYM SnmpUtilOidCpy}
SnmpUtilOidAppendnull362 function SnmpUtilOidAppend(pOidDst: PAsnObjectIdentifier; pOidSrc: PAsnObjectIdentifier): SNMPAPI; stdcall;
363 {$EXTERNALSYM SnmpUtilOidAppend}
SnmpUtilOidNCmpnull364 function SnmpUtilOidNCmp(pOid1, pOid2: PAsnObjectIdentifier; nSubIds: UINT): SNMPAPI; stdcall;
365 {$EXTERNALSYM SnmpUtilOidNCmp}
SnmpUtilOidCmpnull366 function SnmpUtilOidCmp(pOid1, pOid2: PAsnObjectIdentifier): SNMPAPI; stdcall;
367 {$EXTERNALSYM SnmpUtilOidCmp}
368 procedure SnmpUtilOidFree(pOid: TAsnObjectIdentifier); stdcall;
369 {$EXTERNALSYM SnmpUtilOidFree}
SnmpUtilOctetsCmpnull370 function SnmpUtilOctetsCmp(pOctets1, pOctets2: PAsnOctetString): SNMPAPI; stdcall;
371 {$EXTERNALSYM SnmpUtilOctetsCmp}
SnmpUtilOctetsNCmpnull372 function SnmpUtilOctetsNCmp(pOctets1, pOctets2: PAsnOctetString; nChars: UINT): SNMPAPI; stdcall;
373 {$EXTERNALSYM SnmpUtilOctetsNCmp}
SnmpUtilOctetsCpynull374 function SnmpUtilOctetsCpy(pOctetsDst, pOctetsSrc: PAsnOctetString): SNMPAPI; stdcall;
375 {$EXTERNALSYM SnmpUtilOctetsCpy}
376 procedure SnmpUtilOctetsFree(pOctets: PAsnOctetString); stdcall;
377 {$EXTERNALSYM SnmpUtilOctetsFree}
SnmpUtilAsnAnyCpynull378 function SnmpUtilAsnAnyCpy(pAnyDst, pAnySrc: PAsnAny): SNMPAPI; stdcall;
379 {$EXTERNALSYM SnmpUtilAsnAnyCpy}
380 procedure SnmpUtilAsnAnyFree(pAny: PAsnAny); stdcall;
381 {$EXTERNALSYM SnmpUtilAsnAnyFree}
SnmpUtilVarBindCpynull382 function SnmpUtilVarBindCpy(pVbDst: PSnmpVarBind; pVbSrc: PSnmpVarBind): SNMPAPI; stdcall;
383 {$EXTERNALSYM SnmpUtilVarBindCpy}
384 procedure SnmpUtilVarBindFree(pVb: PSnmpVarBind); stdcall;
385 {$EXTERNALSYM SnmpUtilVarBindFree}
SnmpUtilVarBindListCpynull386 function SnmpUtilVarBindListCpy(pVblDst: PSnmpVarBindList; pVblSrc: PSnmpVarBindList): SNMPAPI; stdcall;
387 {$EXTERNALSYM SnmpUtilVarBindListCpy}
388 procedure SnmpUtilVarBindListFree(pVbl: PSnmpVarBindList); stdcall;
389 {$EXTERNALSYM SnmpUtilVarBindListFree}
390 procedure SnmpUtilMemFree(pMem: LPVOID); stdcall;
391 {$EXTERNALSYM SnmpUtilMemFree}
SnmpUtilMemAllocnull392 function SnmpUtilMemAlloc(nBytes: UINT): LPVOID; stdcall;
393 {$EXTERNALSYM SnmpUtilMemAlloc}
SnmpUtilMemReAllocnull394 function SnmpUtilMemReAlloc(pMem: LPVOID; nBytes: UINT): LPVOID; stdcall;
395 {$EXTERNALSYM SnmpUtilMemReAlloc}
SnmpUtilOidToAnull396 function SnmpUtilOidToA(Oid: PAsnObjectIdentifier): LPSTR; stdcall;
397 {$EXTERNALSYM SnmpUtilOidToA}
SnmpUtilIdsToAnull398 function SnmpUtilIdsToA(Ids: PUINT; IdLength: UINT): LPSTR; stdcall;
399 {$EXTERNALSYM SnmpUtilIdsToA}
400 procedure SnmpUtilPrintOid(Oid: PAsnObjectIdentifier); stdcall;
401 {$EXTERNALSYM SnmpUtilPrintOid}
402 procedure SnmpUtilPrintAsnAny(pAny: PAsnAny); stdcall;
403 {$EXTERNALSYM SnmpUtilPrintAsnAny}
SnmpSvcGetUptimenull404 function SnmpSvcGetUptime: DWORD; stdcall;
405 {$EXTERNALSYM SnmpSvcGetUptime}
406 procedure SnmpSvcSetLogLevel(nLogLevel: INT); stdcall;
407 {$EXTERNALSYM SnmpSvcSetLogLevel}
408 procedure SnmpSvcSetLogType(nLogType: INT); stdcall;
409 {$EXTERNALSYM SnmpSvcSetLogType}
410
411 { SNMP Debugging Definitions }
412
413 const
414 SNMP_LOG_SILENT = $0;
415 {$EXTERNALSYM SNMP_LOG_SILENT}
416 SNMP_LOG_FATAL = $1;
417 {$EXTERNALSYM SNMP_LOG_FATAL}
418 SNMP_LOG_ERROR = $2;
419 {$EXTERNALSYM SNMP_LOG_ERROR}
420 SNMP_LOG_WARNING = $3;
421 {$EXTERNALSYM SNMP_LOG_WARNING}
422 SNMP_LOG_TRACE = $4;
423 {$EXTERNALSYM SNMP_LOG_TRACE}
424 SNMP_LOG_VERBOSE = $5;
425 {$EXTERNALSYM SNMP_LOG_VERBOSE}
426
427 SNMP_OUTPUT_TO_CONSOLE = $1;
428 {$EXTERNALSYM SNMP_OUTPUT_TO_CONSOLE}
429 SNMP_OUTPUT_TO_LOGFILE = $2;
430 {$EXTERNALSYM SNMP_OUTPUT_TO_LOGFILE}
431 SNMP_OUTPUT_TO_EVENTLOG = $4; // no longer supported
432 {$EXTERNALSYM SNMP_OUTPUT_TO_EVENTLOG}
433 SNMP_OUTPUT_TO_DEBUGGER = $8;
434 {$EXTERNALSYM SNMP_OUTPUT_TO_DEBUGGER}
435
436 { SNMP Debugging Prototypes }
437
438 procedure SnmpUtilDbgPrint(nLogLevel: INT; szFormat: LPSTR); stdcall;
439 {$EXTERNALSYM SnmpUtilDbgPrint}
440
441 { Miscellaneous definitions }
442
443 const
444 DEFINE_NULLOID: TAsnObjectIdentifier = (idLength: 0; ids: nil);
445 {$EXTERNALSYM DEFINE_NULLOID}
446 DEFINE_NULLOCTETS: TAsnOctetString = (stream: nil; length: 0; dynamic_: False);
447 {$EXTERNALSYM DEFINE_NULLOCTETS}
448
449 DEFAULT_SNMP_PORT_UDP = 161;
450 {$EXTERNALSYM DEFAULT_SNMP_PORT_UDP}
451 DEFAULT_SNMP_PORT_IPX = 36879;
452 {$EXTERNALSYM DEFAULT_SNMP_PORT_IPX}
453 DEFAULT_SNMPTRAP_PORT_UDP = 162;
454 {$EXTERNALSYM DEFAULT_SNMPTRAP_PORT_UDP}
455 DEFAULT_SNMPTRAP_PORT_IPX = 36880;
456 {$EXTERNALSYM DEFAULT_SNMPTRAP_PORT_IPX}
457 SNMP_MAX_OID_LEN = 128;
458 {$EXTERNALSYM SNMP_MAX_OID_LEN}
459
460 { API Error Code Definitions }
461
462 SNMP_MEM_ALLOC_ERROR = 1;
463 {$EXTERNALSYM SNMP_MEM_ALLOC_ERROR}
464 SNMP_BERAPI_INVALID_LENGTH = 10;
465 {$EXTERNALSYM SNMP_BERAPI_INVALID_LENGTH}
466 SNMP_BERAPI_INVALID_TAG = 11;
467 {$EXTERNALSYM SNMP_BERAPI_INVALID_TAG}
468 SNMP_BERAPI_OVERFLOW = 12;
469 {$EXTERNALSYM SNMP_BERAPI_OVERFLOW}
470 SNMP_BERAPI_SHORT_BUFFER = 13;
471 {$EXTERNALSYM SNMP_BERAPI_SHORT_BUFFER}
472 SNMP_BERAPI_INVALID_OBJELEM = 14;
473 {$EXTERNALSYM SNMP_BERAPI_INVALID_OBJELEM}
474 SNMP_PDUAPI_UNRECOGNIZED_PDU = 20;
475 {$EXTERNALSYM SNMP_PDUAPI_UNRECOGNIZED_PDU}
476 SNMP_PDUAPI_INVALID_ES = 21;
477 {$EXTERNALSYM SNMP_PDUAPI_INVALID_ES}
478 SNMP_PDUAPI_INVALID_GT = 22;
479 {$EXTERNALSYM SNMP_PDUAPI_INVALID_GT}
480 SNMP_AUTHAPI_INVALID_VERSION = 30;
481 {$EXTERNALSYM SNMP_AUTHAPI_INVALID_VERSION}
482 SNMP_AUTHAPI_INVALID_MSG_TYPE = 31;
483 {$EXTERNALSYM SNMP_AUTHAPI_INVALID_MSG_TYPE}
484 SNMP_AUTHAPI_TRIV_AUTH_FAILED = 32;
485 {$EXTERNALSYM SNMP_AUTHAPI_TRIV_AUTH_FAILED}
486
487 { Support for old definitions (support disabled via SNMPSTRICT) }
488
489 {$IFNDEF SNMPSTRICT}
490
SNMP_oidcpynull491 function SNMP_oidcpy(pOidDst: PAsnObjectIdentifier; pOidSrc: PAsnObjectIdentifier): SNMPAPI; stdcall;
492 {$EXTERNALSYM SNMP_oidcpy}
SNMP_oidappendnull493 function SNMP_oidappend(pOidDst: PAsnObjectIdentifier; pOidSrc: PAsnObjectIdentifier): SNMPAPI; stdcall;
494 {$EXTERNALSYM SNMP_oidappend}
SNMP_oidncmpnull495 function SNMP_oidncmp(pOid1, pOid2: PAsnObjectIdentifier; nSubIds: UINT): SNMPAPI; stdcall;
496 {$EXTERNALSYM SNMP_oidncmp}
SNMP_oidcmpnull497 function SNMP_oidcmp(pOid1, pOid2: PAsnObjectIdentifier): SNMPAPI; stdcall;
498 {$EXTERNALSYM SNMP_oidcmp}
499 procedure SNMP_oidfree(pOid: TAsnObjectIdentifier); stdcall;
500 {$EXTERNALSYM SNMP_oidfree}
501
SNMP_CopyVarBindnull502 function SNMP_CopyVarBind(pVbDst: PSnmpVarBind; pVbSrc: PSnmpVarBind): SNMPAPI; stdcall;
503 {$EXTERNALSYM SNMP_CopyVarBind}
504 procedure SNMP_FreeVarBind(pVb: PSnmpVarBind); stdcall;
505 {$EXTERNALSYM SNMP_FreeVarBind}
SNMP_CopyVarBindListnull506 function SNMP_CopyVarBindList(pVblDst: PSnmpVarBindList; pVblSrc: PSnmpVarBindList): SNMPAPI; stdcall;
507 {$EXTERNALSYM SNMP_CopyVarBindList}
508 procedure SNMP_FreeVarBindList(pVbl: PSnmpVarBindList); stdcall;
509 {$EXTERNALSYM SNMP_FreeVarBindList}
510
511 procedure SNMP_printany(pAny: PAsnAny); stdcall;
512 {$EXTERNALSYM SNMP_printany}
513
514 procedure SNMP_free(pMem: LPVOID); stdcall;
515 {$EXTERNALSYM SNMP_free}
SNMP_mallocnull516 function SNMP_malloc(nBytes: UINT): LPVOID; stdcall;
517 {$EXTERNALSYM SNMP_malloc}
SNMP_reallocnull518 function SNMP_realloc(pMem: LPVOID; nBytes: UINT): LPVOID; stdcall;
519 {$EXTERNALSYM SNMP_realloc}
520
521 procedure SNMP_DBG_free(pMem: LPVOID); stdcall;
522 {$EXTERNALSYM SNMP_DBG_free}
SNMP_DBG_mallocnull523 function SNMP_DBG_malloc(nBytes: UINT): LPVOID; stdcall;
524 {$EXTERNALSYM SNMP_DBG_malloc}
SNMP_DBG_reallocnull525 function SNMP_DBG_realloc(pMem: LPVOID; nBytes: UINT): LPVOID; stdcall;
526 {$EXTERNALSYM SNMP_DBG_realloc}
527
528 const
529 ASN_RFC1155_IPADDRESS = ASN_IPADDRESS;
530 {$EXTERNALSYM ASN_RFC1155_IPADDRESS}
531 ASN_RFC1155_COUNTER = ASN_COUNTER32;
532 {$EXTERNALSYM ASN_RFC1155_COUNTER}
533 ASN_RFC1155_GAUGE = ASN_GAUGE32;
534 {$EXTERNALSYM ASN_RFC1155_GAUGE}
535 ASN_RFC1155_TIMETICKS = ASN_TIMETICKS;
536 {$EXTERNALSYM ASN_RFC1155_TIMETICKS}
537 ASN_RFC1155_OPAQUE = ASN_OPAQUE;
538 {$EXTERNALSYM ASN_RFC1155_OPAQUE}
539 ASN_RFC1213_DISPSTRING = ASN_OCTETSTRING;
540 {$EXTERNALSYM ASN_RFC1213_DISPSTRING}
541
542 ASN_RFC1157_GETREQUEST = SNMP_PDU_GET;
543 {$EXTERNALSYM ASN_RFC1157_GETREQUEST}
544 ASN_RFC1157_GETNEXTREQUEST = SNMP_PDU_GETNEXT;
545 {$EXTERNALSYM ASN_RFC1157_GETNEXTREQUEST}
546 ASN_RFC1157_GETRESPONSE = SNMP_PDU_RESPONSE;
547 {$EXTERNALSYM ASN_RFC1157_GETRESPONSE}
548 ASN_RFC1157_SETREQUEST = SNMP_PDU_SET;
549 {$EXTERNALSYM ASN_RFC1157_SETREQUEST}
550 ASN_RFC1157_TRAP = SNMP_PDU_V1TRAP;
551 {$EXTERNALSYM ASN_RFC1157_TRAP}
552
553 ASN_CONTEXTSPECIFIC = ASN_CONTEXT;
554 {$EXTERNALSYM ASN_CONTEXTSPECIFIC}
555 ASN_PRIMATIVE = ASN_PRIMITIVE;
556 {$EXTERNALSYM ASN_PRIMATIVE}
557
558 type
559 RFC1157VarBindList = TSnmpVarBindList;
560 {$EXTERNALSYM RFC1157VarBindList}
561 RFC1157VarBind = TSnmpVarBind;
562 {$EXTERNALSYM RFC1157VarBind}
563 TAsnInteger = TAsnInteger32;
564 {$EXTERNALSYM TAsnInteger}
565 TAsnCounter = TAsnCounter32;
566 {$EXTERNALSYM TAsnCounter}
567 TAsnGauge = TAsnGauge32;
568 {$EXTERNALSYM TAsnGauge}
569
570 const
571 ASN_UNSIGNED32 = ASN_UINTEGER32;
572 {$EXTERNALSYM ASN_UNSIGNED32}
573
574 {$ENDIF !SNMPSTRICT}
575
576 {$ENDIF JWA_IMPLEMENTATIONSECTION}
577
578
579
580 {$IFNDEF JWA_OMIT_SECTIONS}
581 implementation
582 uses
583 JwaWinBase;
584 {$ENDIF JWA_OMIT_SECTIONS}
585
586
587
588 {$IFNDEF JWA_INTERFACESECTION}
589
590
591
592 {$IFNDEF JWA_INCLUDEMODE}
593 const
594 snmpapilib = 'snmpapi.dll';
595 {$ENDIF JWA_INCLUDEMODE}
596
597 {$IFDEF DYNAMIC_LINK}
598
599 var
600 _SnmpUtilOidCpy: Pointer;
601
SnmpUtilOidCpynull602 function SnmpUtilOidCpy;
603 begin
604 GetProcedureAddress(_SnmpUtilOidCpy, snmpapilib, 'SnmpUtilOidCpy');
605 asm
606 MOV ESP, EBP
607 POP EBP
608 JMP [_SnmpUtilOidCpy]
609 end;
610 end;
611
612 var
613 _SnmpUtilOidAppend: Pointer;
614
SnmpUtilOidAppendnull615 function SnmpUtilOidAppend;
616 begin
617 GetProcedureAddress(_SnmpUtilOidAppend, snmpapilib, 'SnmpUtilOidAppend');
618 asm
619 MOV ESP, EBP
620 POP EBP
621 JMP [_SnmpUtilOidAppend]
622 end;
623 end;
624
625 var
626 _SnmpUtilOidNCmp: Pointer;
627
SnmpUtilOidNCmpnull628 function SnmpUtilOidNCmp;
629 begin
630 GetProcedureAddress(_SnmpUtilOidNCmp, snmpapilib, 'SnmpUtilOidNCmp');
631 asm
632 MOV ESP, EBP
633 POP EBP
634 JMP [_SnmpUtilOidNCmp]
635 end;
636 end;
637
638 var
639 _SnmpUtilOidCmp: Pointer;
640
SnmpUtilOidCmpnull641 function SnmpUtilOidCmp;
642 begin
643 GetProcedureAddress(_SnmpUtilOidCmp, snmpapilib, 'SnmpUtilOidCmp');
644 asm
645 MOV ESP, EBP
646 POP EBP
647 JMP [_SnmpUtilOidCmp]
648 end;
649 end;
650
651 var
652 _SnmpUtilOidFree: Pointer;
653
654 procedure SnmpUtilOidFree;
655 begin
656 GetProcedureAddress(_SnmpUtilOidFree, snmpapilib, 'SnmpUtilOidFree');
657 asm
658 MOV ESP, EBP
659 POP EBP
660 JMP [_SnmpUtilOidFree]
661 end;
662 end;
663
664 var
665 _SnmpUtilOctetsCmp: Pointer;
666
SnmpUtilOctetsCmpnull667 function SnmpUtilOctetsCmp;
668 begin
669 GetProcedureAddress(_SnmpUtilOctetsCmp, snmpapilib, 'SnmpUtilOctetsCmp');
670 asm
671 MOV ESP, EBP
672 POP EBP
673 JMP [_SnmpUtilOctetsCmp]
674 end;
675 end;
676
677 var
678 _SnmpUtilOctetsNCmp: Pointer;
679
SnmpUtilOctetsNCmpnull680 function SnmpUtilOctetsNCmp;
681 begin
682 GetProcedureAddress(_SnmpUtilOctetsNCmp, snmpapilib, 'SnmpUtilOctetsNCmp');
683 asm
684 MOV ESP, EBP
685 POP EBP
686 JMP [_SnmpUtilOctetsNCmp]
687 end;
688 end;
689
690 var
691 _SnmpUtilOctetsCpy: Pointer;
692
SnmpUtilOctetsCpynull693 function SnmpUtilOctetsCpy;
694 begin
695 GetProcedureAddress(_SnmpUtilOctetsCpy, snmpapilib, 'SnmpUtilOctetsCpy');
696 asm
697 MOV ESP, EBP
698 POP EBP
699 JMP [_SnmpUtilOctetsCpy]
700 end;
701 end;
702
703 var
704 _SnmpUtilOctetsFree: Pointer;
705
706 procedure SnmpUtilOctetsFree;
707 begin
708 GetProcedureAddress(_SnmpUtilOctetsFree, snmpapilib, 'SnmpUtilOctetsFree');
709 asm
710 MOV ESP, EBP
711 POP EBP
712 JMP [_SnmpUtilOctetsFree]
713 end;
714 end;
715
716 var
717 _SnmpUtilAsnAnyCpy: Pointer;
718
SnmpUtilAsnAnyCpynull719 function SnmpUtilAsnAnyCpy;
720 begin
721 GetProcedureAddress(_SnmpUtilAsnAnyCpy, snmpapilib, 'SnmpUtilAsnAnyCpy');
722 asm
723 MOV ESP, EBP
724 POP EBP
725 JMP [_SnmpUtilAsnAnyCpy]
726 end;
727 end;
728
729 var
730 _SnmpUtilAsnAnyFree: Pointer;
731
732 procedure SnmpUtilAsnAnyFree;
733 begin
734 GetProcedureAddress(_SnmpUtilAsnAnyFree, snmpapilib, 'SnmpUtilAsnAnyFree');
735 asm
736 MOV ESP, EBP
737 POP EBP
738 JMP [_SnmpUtilAsnAnyFree]
739 end;
740 end;
741
742 var
743 _SnmpUtilVarBindCpy: Pointer;
744
SnmpUtilVarBindCpynull745 function SnmpUtilVarBindCpy;
746 begin
747 GetProcedureAddress(_SnmpUtilVarBindCpy, snmpapilib, 'SnmpUtilVarBindCpy');
748 asm
749 MOV ESP, EBP
750 POP EBP
751 JMP [_SnmpUtilVarBindCpy]
752 end;
753 end;
754
755 var
756 _SnmpUtilVarBindFree: Pointer;
757
758 procedure SnmpUtilVarBindFree;
759 begin
760 GetProcedureAddress(_SnmpUtilVarBindFree, snmpapilib, 'SnmpUtilVarBindFree');
761 asm
762 MOV ESP, EBP
763 POP EBP
764 JMP [_SnmpUtilVarBindFree]
765 end;
766 end;
767
768 var
769 _SnmpUtilVarBindListCpy: Pointer;
770
SnmpUtilVarBindListCpynull771 function SnmpUtilVarBindListCpy;
772 begin
773 GetProcedureAddress(_SnmpUtilVarBindListCpy, snmpapilib, 'SnmpUtilVarBindListCpy');
774 asm
775 MOV ESP, EBP
776 POP EBP
777 JMP [_SnmpUtilVarBindListCpy]
778 end;
779 end;
780
781 var
782 _SnmpUtilVarBindListFree: Pointer;
783
784 procedure SnmpUtilVarBindListFree;
785 begin
786 GetProcedureAddress(_SnmpUtilVarBindListFree, snmpapilib, 'SnmpUtilVarBindListFree');
787 asm
788 MOV ESP, EBP
789 POP EBP
790 JMP [_SnmpUtilVarBindListFree]
791 end;
792 end;
793
794 var
795 _SnmpUtilMemFree: Pointer;
796
797 procedure SnmpUtilMemFree;
798 begin
799 GetProcedureAddress(_SnmpUtilMemFree, snmpapilib, 'SnmpUtilMemFree');
800 asm
801 MOV ESP, EBP
802 POP EBP
803 JMP [_SnmpUtilMemFree]
804 end;
805 end;
806
807 var
808 _SnmpUtilMemAlloc: Pointer;
809
SnmpUtilMemAllocnull810 function SnmpUtilMemAlloc;
811 begin
812 GetProcedureAddress(_SnmpUtilMemAlloc, snmpapilib, 'SnmpUtilMemAlloc');
813 asm
814 MOV ESP, EBP
815 POP EBP
816 JMP [_SnmpUtilMemAlloc]
817 end;
818 end;
819
820 var
821 _SnmpUtilMemReAlloc: Pointer;
822
SnmpUtilMemReAllocnull823 function SnmpUtilMemReAlloc;
824 begin
825 GetProcedureAddress(_SnmpUtilMemReAlloc, snmpapilib, 'SnmpUtilMemReAlloc');
826 asm
827 MOV ESP, EBP
828 POP EBP
829 JMP [_SnmpUtilMemReAlloc]
830 end;
831 end;
832
833 var
834 _SnmpUtilOidToA: Pointer;
835
SnmpUtilOidToAnull836 function SnmpUtilOidToA;
837 begin
838 GetProcedureAddress(_SnmpUtilOidToA, snmpapilib, 'SnmpUtilOidToA');
839 asm
840 MOV ESP, EBP
841 POP EBP
842 JMP [_SnmpUtilOidToA]
843 end;
844 end;
845
846 var
847 _SnmpUtilIdsToA: Pointer;
848
SnmpUtilIdsToAnull849 function SnmpUtilIdsToA;
850 begin
851 GetProcedureAddress(_SnmpUtilIdsToA, snmpapilib, 'SnmpUtilIdsToA');
852 asm
853 MOV ESP, EBP
854 POP EBP
855 JMP [_SnmpUtilIdsToA]
856 end;
857 end;
858
859 var
860 _SnmpUtilPrintOid: Pointer;
861
862 procedure SnmpUtilPrintOid;
863 begin
864 GetProcedureAddress(_SnmpUtilPrintOid, snmpapilib, 'SnmpUtilPrintOid');
865 asm
866 MOV ESP, EBP
867 POP EBP
868 JMP [_SnmpUtilPrintOid]
869 end;
870 end;
871
872 var
873 _SnmpUtilPrintAsnAny: Pointer;
874
875 procedure SnmpUtilPrintAsnAny;
876 begin
877 GetProcedureAddress(_SnmpUtilPrintAsnAny, snmpapilib, 'SnmpUtilPrintAsnAny');
878 asm
879 MOV ESP, EBP
880 POP EBP
881 JMP [_SnmpUtilPrintAsnAny]
882 end;
883 end;
884
885 var
886 _SnmpSvcGetUptime: Pointer;
887
SnmpSvcGetUptimenull888 function SnmpSvcGetUptime;
889 begin
890 GetProcedureAddress(_SnmpSvcGetUptime, snmpapilib, 'SnmpSvcGetUptime');
891 asm
892 MOV ESP, EBP
893 POP EBP
894 JMP [_SnmpSvcGetUptime]
895 end;
896 end;
897
898 var
899 _SnmpSvcSetLogLevel: Pointer;
900
901 procedure SnmpSvcSetLogLevel;
902 begin
903 GetProcedureAddress(_SnmpSvcSetLogLevel, snmpapilib, 'SnmpSvcSetLogLevel');
904 asm
905 MOV ESP, EBP
906 POP EBP
907 JMP [_SnmpSvcSetLogLevel]
908 end;
909 end;
910
911 var
912 _SnmpSvcSetLogType: Pointer;
913
914 procedure SnmpSvcSetLogType;
915 begin
916 GetProcedureAddress(_SnmpSvcSetLogType, snmpapilib, 'SnmpSvcSetLogType');
917 asm
918 MOV ESP, EBP
919 POP EBP
920 JMP [_SnmpSvcSetLogType]
921 end;
922 end;
923
924 var
925 _SnmpUtilDbgPrint: Pointer;
926
927 procedure SnmpUtilDbgPrint;
928 begin
929 GetProcedureAddress(_SnmpUtilDbgPrint, snmpapilib, 'SnmpUtilDbgPrint');
930 asm
931 MOV ESP, EBP
932 POP EBP
933 JMP [_SnmpUtilDbgPrint]
934 end;
935 end;
936
937 {$IFNDEF SNMPSTRICT}
938
939 var
940 _SNMP_oidcpy: Pointer;
941
SNMP_oidcpynull942 function SNMP_oidcpy;
943 begin
944 GetProcedureAddress(_SNMP_oidcpy, snmpapilib, 'SnmpUtilOidCpy');
945 asm
946 MOV ESP, EBP
947 POP EBP
948 JMP [_SNMP_oidcpy]
949 end;
950 end;
951
952 var
953 _SNMP_oidappend: Pointer;
954
SNMP_oidappendnull955 function SNMP_oidappend;
956 begin
957 GetProcedureAddress(_SNMP_oidappend, snmpapilib, 'SnmpUtilOidAppend');
958 asm
959 MOV ESP, EBP
960 POP EBP
961 JMP [_SNMP_oidappend]
962 end;
963 end;
964
965 var
966 _SNMP_oidncmp: Pointer;
967
SNMP_oidncmpnull968 function SNMP_oidncmp;
969 begin
970 GetProcedureAddress(_SNMP_oidncmp, snmpapilib, 'SnmpUtilOidNCmp');
971 asm
972 MOV ESP, EBP
973 POP EBP
974 JMP [_SNMP_oidncmp]
975 end;
976 end;
977
978 var
979 _SNMP_oidcmp: Pointer;
980
SNMP_oidcmpnull981 function SNMP_oidcmp;
982 begin
983 GetProcedureAddress(_SNMP_oidcmp, snmpapilib, 'SnmpUtilOidCmp');
984 asm
985 MOV ESP, EBP
986 POP EBP
987 JMP [_SNMP_oidcmp]
988 end;
989 end;
990
991 var
992 _SNMP_oidfree: Pointer;
993
994 procedure SNMP_oidfree;
995 begin
996 GetProcedureAddress(_SNMP_oidfree, snmpapilib, 'SnmpUtilOidFree');
997 asm
998 MOV ESP, EBP
999 POP EBP
1000 JMP [_SNMP_oidfree]
1001 end;
1002 end;
1003
1004 var
1005 _SNMP_CopyVarBind: Pointer;
1006
SNMP_CopyVarBindnull1007 function SNMP_CopyVarBind;
1008 begin
1009 GetProcedureAddress(_SNMP_CopyVarBind, snmpapilib, 'SnmpUtilVarBindCpy');
1010 asm
1011 MOV ESP, EBP
1012 POP EBP
1013 JMP [_SNMP_CopyVarBind]
1014 end;
1015 end;
1016
1017 var
1018 _SNMP_FreeVarBind: Pointer;
1019
1020 procedure SNMP_FreeVarBind;
1021 begin
1022 GetProcedureAddress(_SNMP_FreeVarBind, snmpapilib, 'SnmpUtilVarBindFree');
1023 asm
1024 MOV ESP, EBP
1025 POP EBP
1026 JMP [_SNMP_FreeVarBind]
1027 end;
1028 end;
1029
1030 var
1031 _SNMP_CopyVarBindList: Pointer;
1032
SNMP_CopyVarBindListnull1033 function SNMP_CopyVarBindList;
1034 begin
1035 GetProcedureAddress(_SNMP_CopyVarBindList, snmpapilib, 'SnmpUtilVarBindListCpy');
1036 asm
1037 MOV ESP, EBP
1038 POP EBP
1039 JMP [_SNMP_CopyVarBindList]
1040 end;
1041 end;
1042
1043 var
1044 _SNMP_FreeVarBindList: Pointer;
1045
1046 procedure SNMP_FreeVarBindList;
1047 begin
1048 GetProcedureAddress(_SNMP_FreeVarBindList, snmpapilib, 'SnmpUtilVarBindListFree');
1049 asm
1050 MOV ESP, EBP
1051 POP EBP
1052 JMP [_SNMP_FreeVarBindList]
1053 end;
1054 end;
1055
1056 var
1057 _SNMP_printany: Pointer;
1058
1059 procedure SNMP_printany;
1060 begin
1061 GetProcedureAddress(_SNMP_printany, snmpapilib, 'SnmpUtilPrintAsnAny');
1062 asm
1063 MOV ESP, EBP
1064 POP EBP
1065 JMP [_SNMP_printany]
1066 end;
1067 end;
1068
1069 var
1070 _SNMP_free: Pointer;
1071
1072 procedure SNMP_free;
1073 begin
1074 GetProcedureAddress(_SNMP_free, snmpapilib, 'SnmpUtilMemFree');
1075 asm
1076 MOV ESP, EBP
1077 POP EBP
1078 JMP [_SNMP_free]
1079 end;
1080 end;
1081
1082 var
1083 _SNMP_malloc: Pointer;
1084
SNMP_mallocnull1085 function SNMP_malloc;
1086 begin
1087 GetProcedureAddress(_SNMP_malloc, snmpapilib, 'SnmpUtilMemAlloc');
1088 asm
1089 MOV ESP, EBP
1090 POP EBP
1091 JMP [_SNMP_malloc]
1092 end;
1093 end;
1094
1095 var
1096 _SNMP_realloc: Pointer;
1097
SNMP_reallocnull1098 function SNMP_realloc;
1099 begin
1100 GetProcedureAddress(_SNMP_realloc, snmpapilib, 'SnmpUtilMemReAlloc');
1101 asm
1102 MOV ESP, EBP
1103 POP EBP
1104 JMP [_SNMP_realloc]
1105 end;
1106 end;
1107
1108 var
1109 _SNMP_DBG_free: Pointer;
1110
1111 procedure SNMP_DBG_free;
1112 begin
1113 GetProcedureAddress(_SNMP_DBG_free, snmpapilib, 'SnmpUtilMemFree');
1114 asm
1115 MOV ESP, EBP
1116 POP EBP
1117 JMP [_SNMP_DBG_free]
1118 end;
1119 end;
1120
1121 var
1122 _SNMP_DBG_malloc: Pointer;
1123
SNMP_DBG_mallocnull1124 function SNMP_DBG_malloc;
1125 begin
1126 GetProcedureAddress(_SNMP_DBG_malloc, snmpapilib, 'SnmpUtilMemAlloc');
1127 asm
1128 MOV ESP, EBP
1129 POP EBP
1130 JMP [_SNMP_DBG_malloc]
1131 end;
1132 end;
1133
1134 var
1135 _SNMP_DBG_realloc: Pointer;
1136
SNMP_DBG_reallocnull1137 function SNMP_DBG_realloc;
1138 begin
1139 GetProcedureAddress(_SNMP_DBG_realloc, snmpapilib, 'SnmpUtilMemReAlloc');
1140 asm
1141 MOV ESP, EBP
1142 POP EBP
1143 JMP [_SNMP_DBG_realloc]
1144 end;
1145 end;
1146
1147 {$ENDIF !SNMPSTRICT}
1148
1149 {$ELSE}
1150
SnmpUtilOidCpynull1151 function SnmpUtilOidCpy; external snmpapilib name 'SnmpUtilOidCpy';
SnmpUtilOidAppendnull1152 function SnmpUtilOidAppend; external snmpapilib name 'SnmpUtilOidAppend';
SnmpUtilOidNCmpnull1153 function SnmpUtilOidNCmp; external snmpapilib name 'SnmpUtilOidNCmp';
SnmpUtilOidCmpnull1154 function SnmpUtilOidCmp; external snmpapilib name 'SnmpUtilOidCmp';
1155 procedure SnmpUtilOidFree; external snmpapilib name 'SnmpUtilOidFree';
SnmpUtilOctetsCmpnull1156 function SnmpUtilOctetsCmp; external snmpapilib name 'SnmpUtilOctetsCmp';
SnmpUtilOctetsNCmpnull1157 function SnmpUtilOctetsNCmp; external snmpapilib name 'SnmpUtilOctetsNCmp';
SnmpUtilOctetsCpynull1158 function SnmpUtilOctetsCpy; external snmpapilib name 'SnmpUtilOctetsCpy';
1159 procedure SnmpUtilOctetsFree; external snmpapilib name 'SnmpUtilOctetsFree';
SnmpUtilAsnAnyCpynull1160 function SnmpUtilAsnAnyCpy; external snmpapilib name 'SnmpUtilAsnAnyCpy';
1161 procedure SnmpUtilAsnAnyFree; external snmpapilib name 'SnmpUtilAsnAnyFree';
SnmpUtilVarBindCpynull1162 function SnmpUtilVarBindCpy; external snmpapilib name 'SnmpUtilVarBindCpy';
1163 procedure SnmpUtilVarBindFree; external snmpapilib name 'SnmpUtilVarBindFree';
SnmpUtilVarBindListCpynull1164 function SnmpUtilVarBindListCpy; external snmpapilib name 'SnmpUtilVarBindListCpy';
1165 procedure SnmpUtilVarBindListFree; external snmpapilib name 'SnmpUtilVarBindListFree';
1166 procedure SnmpUtilMemFree; external snmpapilib name 'SnmpUtilMemFree';
SnmpUtilMemAllocnull1167 function SnmpUtilMemAlloc; external snmpapilib name 'SnmpUtilMemAlloc';
SnmpUtilMemReAllocnull1168 function SnmpUtilMemReAlloc; external snmpapilib name 'SnmpUtilMemReAlloc';
SnmpUtilOidToAnull1169 function SnmpUtilOidToA; external snmpapilib name 'SnmpUtilOidToA';
SnmpUtilIdsToAnull1170 function SnmpUtilIdsToA; external snmpapilib name 'SnmpUtilIdsToA';
1171 procedure SnmpUtilPrintOid; external snmpapilib name 'SnmpUtilPrintOid';
1172 procedure SnmpUtilPrintAsnAny; external snmpapilib name 'SnmpUtilPrintAsnAny';
SnmpSvcGetUptimenull1173 function SnmpSvcGetUptime; external snmpapilib name 'SnmpSvcGetUptime';
1174 procedure SnmpSvcSetLogLevel; external snmpapilib name 'SnmpSvcSetLogLevel';
1175 procedure SnmpSvcSetLogType; external snmpapilib name 'SnmpSvcSetLogType';
1176 procedure SnmpUtilDbgPrint; external snmpapilib name 'SnmpUtilDbgPrint';
1177 {$IFNDEF SNMPSTRICT}
SNMP_oidcpynull1178 function SNMP_oidcpy; external snmpapilib name 'SnmpUtilOidCpy';
SNMP_oidappendnull1179 function SNMP_oidappend; external snmpapilib name 'SnmpUtilOidAppend';
SNMP_oidncmpnull1180 function SNMP_oidncmp; external snmpapilib name 'SnmpUtilOidNCmp';
SNMP_oidcmpnull1181 function SNMP_oidcmp; external snmpapilib name 'SnmpUtilOidCmp';
1182 procedure SNMP_oidfree; external snmpapilib name 'SnmpUtilOidFree';
SNMP_CopyVarBindnull1183 function SNMP_CopyVarBind; external snmpapilib name 'SnmpUtilVarBindCpy';
1184 procedure SNMP_FreeVarBind; external snmpapilib name 'SnmpUtilVarBindFree';
SNMP_CopyVarBindListnull1185 function SNMP_CopyVarBindList; external snmpapilib name 'SnmpUtilVarBindListCpy';
1186 procedure SNMP_FreeVarBindList; external snmpapilib name 'SnmpUtilVarBindListFree';
1187 procedure SNMP_printany; external snmpapilib name 'SnmpUtilPrintAsnAny';
1188 procedure SNMP_free; external snmpapilib name 'SnmpUtilMemFree';
SNMP_mallocnull1189 function SNMP_malloc; external snmpapilib name 'SnmpUtilMemAlloc';
SNMP_reallocnull1190 function SNMP_realloc; external snmpapilib name 'SnmpUtilMemReAlloc';
1191 procedure SNMP_DBG_free; external snmpapilib name 'SnmpUtilMemFree';
SNMP_DBG_mallocnull1192 function SNMP_DBG_malloc; external snmpapilib name 'SnmpUtilMemAlloc';
SNMP_DBG_reallocnull1193 function SNMP_DBG_realloc; external snmpapilib name 'SnmpUtilMemReAlloc';
1194 {$ENDIF !SNMPSTRICT}
1195
1196 {$ENDIF DYNAMIC_LINK}
1197
1198 {$ENDIF JWA_INTERFACESECTION}
1199
1200
1201
1202 {$IFNDEF JWA_OMIT_SECTIONS}
1203 end.
1204 {$ENDIF JWA_OMIT_SECTIONS}
1205