📄 jwasnmp.pas
字号:
{ Miscellaneous definitions }
const
DEFINE_NULLOID: TAsnObjectIdentifier = (idLength: 0; ids: nil);
{$EXTERNALSYM DEFINE_NULLOID}
DEFINE_NULLOCTETS: TAsnOctetString = (stream: nil; length: 0; dynamic_: False);
{$EXTERNALSYM DEFINE_NULLOCTETS}
DEFAULT_SNMP_PORT_UDP = 161;
{$EXTERNALSYM DEFAULT_SNMP_PORT_UDP}
DEFAULT_SNMP_PORT_IPX = 36879;
{$EXTERNALSYM DEFAULT_SNMP_PORT_IPX}
DEFAULT_SNMPTRAP_PORT_UDP = 162;
{$EXTERNALSYM DEFAULT_SNMPTRAP_PORT_UDP}
DEFAULT_SNMPTRAP_PORT_IPX = 36880;
{$EXTERNALSYM DEFAULT_SNMPTRAP_PORT_IPX}
SNMP_MAX_OID_LEN = 128;
{$EXTERNALSYM SNMP_MAX_OID_LEN}
{ API Error Code Definitions }
SNMP_MEM_ALLOC_ERROR = 1;
{$EXTERNALSYM SNMP_MEM_ALLOC_ERROR}
SNMP_BERAPI_INVALID_LENGTH = 10;
{$EXTERNALSYM SNMP_BERAPI_INVALID_LENGTH}
SNMP_BERAPI_INVALID_TAG = 11;
{$EXTERNALSYM SNMP_BERAPI_INVALID_TAG}
SNMP_BERAPI_OVERFLOW = 12;
{$EXTERNALSYM SNMP_BERAPI_OVERFLOW}
SNMP_BERAPI_SHORT_BUFFER = 13;
{$EXTERNALSYM SNMP_BERAPI_SHORT_BUFFER}
SNMP_BERAPI_INVALID_OBJELEM = 14;
{$EXTERNALSYM SNMP_BERAPI_INVALID_OBJELEM}
SNMP_PDUAPI_UNRECOGNIZED_PDU = 20;
{$EXTERNALSYM SNMP_PDUAPI_UNRECOGNIZED_PDU}
SNMP_PDUAPI_INVALID_ES = 21;
{$EXTERNALSYM SNMP_PDUAPI_INVALID_ES}
SNMP_PDUAPI_INVALID_GT = 22;
{$EXTERNALSYM SNMP_PDUAPI_INVALID_GT}
SNMP_AUTHAPI_INVALID_VERSION = 30;
{$EXTERNALSYM SNMP_AUTHAPI_INVALID_VERSION}
SNMP_AUTHAPI_INVALID_MSG_TYPE = 31;
{$EXTERNALSYM SNMP_AUTHAPI_INVALID_MSG_TYPE}
SNMP_AUTHAPI_TRIV_AUTH_FAILED = 32;
{$EXTERNALSYM SNMP_AUTHAPI_TRIV_AUTH_FAILED}
{ Support for old definitions (support disabled via SNMPSTRICT) }
{$IFNDEF SNMPSTRICT}
function SNMP_oidcpy(pOidDst: PAsnObjectIdentifier; pOidSrc: PAsnObjectIdentifier): SNMPAPI; stdcall;
{$EXTERNALSYM SNMP_oidcpy}
function SNMP_oidappend(pOidDst: PAsnObjectIdentifier; pOidSrc: PAsnObjectIdentifier): SNMPAPI; stdcall;
{$EXTERNALSYM SNMP_oidappend}
function SNMP_oidncmp(pOid1, pOid2: PAsnObjectIdentifier; nSubIds: UINT): SNMPAPI; stdcall;
{$EXTERNALSYM SNMP_oidncmp}
function SNMP_oidcmp(pOid1, pOid2: PAsnObjectIdentifier): SNMPAPI; stdcall;
{$EXTERNALSYM SNMP_oidcmp}
procedure SNMP_oidfree(pOid: TAsnObjectIdentifier); stdcall;
{$EXTERNALSYM SNMP_oidfree}
function SNMP_CopyVarBind(pVbDst: PSnmpVarBind; pVbSrc: PSnmpVarBind): SNMPAPI; stdcall;
{$EXTERNALSYM SNMP_CopyVarBind}
procedure SNMP_FreeVarBind(pVb: PSnmpVarBind); stdcall;
{$EXTERNALSYM SNMP_FreeVarBind}
function SNMP_CopyVarBindList(pVblDst: PSnmpVarBindList; pVblSrc: PSnmpVarBindList): SNMPAPI; stdcall;
{$EXTERNALSYM SNMP_CopyVarBindList}
procedure SNMP_FreeVarBindList(pVbl: PSnmpVarBindList); stdcall;
{$EXTERNALSYM SNMP_FreeVarBindList}
procedure SNMP_printany(pAny: PAsnAny); stdcall;
{$EXTERNALSYM SNMP_printany}
procedure SNMP_free(pMem: LPVOID); stdcall;
{$EXTERNALSYM SNMP_free}
function SNMP_malloc(nBytes: UINT): LPVOID; stdcall;
{$EXTERNALSYM SNMP_malloc}
function SNMP_realloc(pMem: LPVOID; nBytes: UINT): LPVOID; stdcall;
{$EXTERNALSYM SNMP_realloc}
procedure SNMP_DBG_free(pMem: LPVOID); stdcall;
{$EXTERNALSYM SNMP_DBG_free}
function SNMP_DBG_malloc(nBytes: UINT): LPVOID; stdcall;
{$EXTERNALSYM SNMP_DBG_malloc}
function SNMP_DBG_realloc(pMem: LPVOID; nBytes: UINT): LPVOID; stdcall;
{$EXTERNALSYM SNMP_DBG_realloc}
const
ASN_RFC1155_IPADDRESS = ASN_IPADDRESS;
{$EXTERNALSYM ASN_RFC1155_IPADDRESS}
ASN_RFC1155_COUNTER = ASN_COUNTER32;
{$EXTERNALSYM ASN_RFC1155_COUNTER}
ASN_RFC1155_GAUGE = ASN_GAUGE32;
{$EXTERNALSYM ASN_RFC1155_GAUGE}
ASN_RFC1155_TIMETICKS = ASN_TIMETICKS;
{$EXTERNALSYM ASN_RFC1155_TIMETICKS}
ASN_RFC1155_OPAQUE = ASN_OPAQUE;
{$EXTERNALSYM ASN_RFC1155_OPAQUE}
ASN_RFC1213_DISPSTRING = ASN_OCTETSTRING;
{$EXTERNALSYM ASN_RFC1213_DISPSTRING}
ASN_RFC1157_GETREQUEST = SNMP_PDU_GET;
{$EXTERNALSYM ASN_RFC1157_GETREQUEST}
ASN_RFC1157_GETNEXTREQUEST = SNMP_PDU_GETNEXT;
{$EXTERNALSYM ASN_RFC1157_GETNEXTREQUEST}
ASN_RFC1157_GETRESPONSE = SNMP_PDU_RESPONSE;
{$EXTERNALSYM ASN_RFC1157_GETRESPONSE}
ASN_RFC1157_SETREQUEST = SNMP_PDU_SET;
{$EXTERNALSYM ASN_RFC1157_SETREQUEST}
ASN_RFC1157_TRAP = SNMP_PDU_V1TRAP;
{$EXTERNALSYM ASN_RFC1157_TRAP}
ASN_CONTEXTSPECIFIC = ASN_CONTEXT;
{$EXTERNALSYM ASN_CONTEXTSPECIFIC}
ASN_PRIMATIVE = ASN_PRIMITIVE;
{$EXTERNALSYM ASN_PRIMATIVE}
type
RFC1157VarBindList = TSnmpVarBindList;
{$EXTERNALSYM RFC1157VarBindList}
RFC1157VarBind = TSnmpVarBind;
{$EXTERNALSYM RFC1157VarBind}
TAsnInteger = TAsnInteger32;
{$EXTERNALSYM TAsnInteger}
TAsnCounter = TAsnCounter32;
{$EXTERNALSYM TAsnCounter}
TAsnGauge = TAsnGauge32;
{$EXTERNALSYM TAsnGauge}
const
ASN_UNSIGNED32 = ASN_UINTEGER32;
{$EXTERNALSYM ASN_UNSIGNED32}
{$ENDIF SNMPSTRICT}
implementation
uses
JwaWinBase;
const
snmpapilib = 'snmpapi.dll';
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOidCpy: Pointer;
function SnmpUtilOidCpy;
begin
GetProcedureAddress(_SnmpUtilOidCpy, snmpapilib, 'SnmpUtilOidCpy');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOidCpy]
end;
end;
{$ELSE}
function SnmpUtilOidCpy; external snmpapilib name 'SnmpUtilOidCpy';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOidAppend: Pointer;
function SnmpUtilOidAppend;
begin
GetProcedureAddress(_SnmpUtilOidAppend, snmpapilib, 'SnmpUtilOidAppend');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOidAppend]
end;
end;
{$ELSE}
function SnmpUtilOidAppend; external snmpapilib name 'SnmpUtilOidAppend';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOidNCmp: Pointer;
function SnmpUtilOidNCmp;
begin
GetProcedureAddress(_SnmpUtilOidNCmp, snmpapilib, 'SnmpUtilOidNCmp');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOidNCmp]
end;
end;
{$ELSE}
function SnmpUtilOidNCmp; external snmpapilib name 'SnmpUtilOidNCmp';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOidCmp: Pointer;
function SnmpUtilOidCmp;
begin
GetProcedureAddress(_SnmpUtilOidCmp, snmpapilib, 'SnmpUtilOidCmp');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOidCmp]
end;
end;
{$ELSE}
function SnmpUtilOidCmp; external snmpapilib name 'SnmpUtilOidCmp';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOidFree: Pointer;
procedure SnmpUtilOidFree;
begin
GetProcedureAddress(_SnmpUtilOidFree, snmpapilib, 'SnmpUtilOidFree');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOidFree]
end;
end;
{$ELSE}
procedure SnmpUtilOidFree; external snmpapilib name 'SnmpUtilOidFree';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOctetsCmp: Pointer;
function SnmpUtilOctetsCmp;
begin
GetProcedureAddress(_SnmpUtilOctetsCmp, snmpapilib, 'SnmpUtilOctetsCmp');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOctetsCmp]
end;
end;
{$ELSE}
function SnmpUtilOctetsCmp; external snmpapilib name 'SnmpUtilOctetsCmp';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOctetsNCmp: Pointer;
function SnmpUtilOctetsNCmp;
begin
GetProcedureAddress(_SnmpUtilOctetsNCmp, snmpapilib, 'SnmpUtilOctetsNCmp');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOctetsNCmp]
end;
end;
{$ELSE}
function SnmpUtilOctetsNCmp; external snmpapilib name 'SnmpUtilOctetsNCmp';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOctetsCpy: Pointer;
function SnmpUtilOctetsCpy;
begin
GetProcedureAddress(_SnmpUtilOctetsCpy, snmpapilib, 'SnmpUtilOctetsCpy');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOctetsCpy]
end;
end;
{$ELSE}
function SnmpUtilOctetsCpy; external snmpapilib name 'SnmpUtilOctetsCpy';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilOctetsFree: Pointer;
procedure SnmpUtilOctetsFree;
begin
GetProcedureAddress(_SnmpUtilOctetsFree, snmpapilib, 'SnmpUtilOctetsFree');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilOctetsFree]
end;
end;
{$ELSE}
procedure SnmpUtilOctetsFree; external snmpapilib name 'SnmpUtilOctetsFree';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilAsnAnyCpy: Pointer;
function SnmpUtilAsnAnyCpy;
begin
GetProcedureAddress(_SnmpUtilAsnAnyCpy, snmpapilib, 'SnmpUtilAsnAnyCpy');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilAsnAnyCpy]
end;
end;
{$ELSE}
function SnmpUtilAsnAnyCpy; external snmpapilib name 'SnmpUtilAsnAnyCpy';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilAsnAnyFree: Pointer;
procedure SnmpUtilAsnAnyFree;
begin
GetProcedureAddress(_SnmpUtilAsnAnyFree, snmpapilib, 'SnmpUtilAsnAnyFree');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilAsnAnyFree]
end;
end;
{$ELSE}
procedure SnmpUtilAsnAnyFree; external snmpapilib name 'SnmpUtilAsnAnyFree';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilVarBindCpy: Pointer;
function SnmpUtilVarBindCpy;
begin
GetProcedureAddress(_SnmpUtilVarBindCpy, snmpapilib, 'SnmpUtilVarBindCpy');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilVarBindCpy]
end;
end;
{$ELSE}
function SnmpUtilVarBindCpy; external snmpapilib name 'SnmpUtilVarBindCpy';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilVarBindFree: Pointer;
procedure SnmpUtilVarBindFree;
begin
GetProcedureAddress(_SnmpUtilVarBindFree, snmpapilib, 'SnmpUtilVarBindFree');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilVarBindFree]
end;
end;
{$ELSE}
procedure SnmpUtilVarBindFree; external snmpapilib name 'SnmpUtilVarBindFree';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilVarBindListCpy: Pointer;
function SnmpUtilVarBindListCpy;
begin
GetProcedureAddress(_SnmpUtilVarBindListCpy, snmpapilib, 'SnmpUtilVarBindListCpy');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilVarBindListCpy]
end;
end;
{$ELSE}
function SnmpUtilVarBindListCpy; external snmpapilib name 'SnmpUtilVarBindListCpy';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilVarBindListFree: Pointer;
procedure SnmpUtilVarBindListFree;
begin
GetProcedureAddress(_SnmpUtilVarBindListFree, snmpapilib, 'SnmpUtilVarBindListFree');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilVarBindListFree]
end;
end;
{$ELSE}
procedure SnmpUtilVarBindListFree; external snmpapilib name 'SnmpUtilVarBindListFree';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilMemFree: Pointer;
procedure SnmpUtilMemFree;
begin
GetProcedureAddress(_SnmpUtilMemFree, snmpapilib, 'SnmpUtilMemFree');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilMemFree]
end;
end;
{$ELSE}
procedure SnmpUtilMemFree; external snmpapilib name 'SnmpUtilMemFree';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SnmpUtilMemAlloc: Pointer;
function SnmpUtilMemAlloc;
begin
GetProcedureAddress(_SnmpUtilMemAlloc, snmpapilib, 'SnmpUtilMemAlloc');
asm
mov esp, ebp
pop ebp
jmp [_SnmpUtilMemAlloc]
end;
end;
{$ELSE}
function SnmpUtilMemAlloc; external snmpapilib name 'SnmpUtilMemAlloc';
{$ENDIF DYNAMIC_LINK}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -