⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwasnmp.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 3 页
字号:

{ 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 + -