SnmpExtensionTrap

【勇芳软件工作室】汉化HomePreviousNext

可扩展代理调用扩展代理DLL中的SnmpExtensionTrap函数来检索扩展代理生成的陷阱。

BOOL SnmpExtensionTrap(

AsnObjectIdentifier【*企业】,//生成企业
AsnInteger【* genericTrap】,//生成陷阱类型
AsnInteger【* specificTrap】,//企业特定类型
AsnTimeticks【*时间】,//时间戳
RFC1157VarBindList【* variableBindings】//变量绑定
); 

参数

【企业】

[out]指向生成陷阱的源对象的对象标识符。可扩展代理不会释放此变量的内存。

【genericTrap】

[out]指出通用陷阱的指示。此参数可以是以下值之一:

含义
SNMP_GENERICTRAP_COLDSTART代理正在管理模式下初始化协议实体。它可能会改变其视图中的对象。
SNMP_GENERICTRAP_WARMSTART代理程序正在自己重新初始化,但不会改变其视图中的对象。
SNMP_GENERICTRAP_LINKDOWN附加的界面已从up状态更改为状态。第一个变量标识接口。
SNMP_GENERICTRAP_LINKUP附加的界面已从状态更改为up状态。第一个变量标识接口。
SNMP_GENERICTRAP_AUTHFAILURESNMP实体发送了SNMP消息,但是虚假声称属于已知社区。
SNMP_GENERICTRAP_EGPNEIGHLOSSEGP对等体已更改为状态。第一个变量标识EGP对等体的IP地址。
SNMP_GENERICTRAP_ENTERSPECIFIC发出【专用陷阱】参数中标识的异常事件。

【specificTrap】

[out]指出生成的特定陷阱的指示。

【的timeStamp】

[out]指向要接收时间戳的变量。

【variableBindings】

[out]指向变量绑定列表。列表的内存将由扩展代理分配。可扩展代理将通过调用SnmpUtilVarBindListFree函数来释放内存。

返回值

如果SnmpExtensionTrap函数在其参数中返回一个陷阱,则返回值为TRUE。否则,可扩展代理重复调用该函数,直到返回值为FALSE。

备注

一旦将SnmpExtensionInit功能的【hPollForTrapEvent】事件句柄设置为信号状态,可扩展代理就会反复调用SnmpExtensionTrap函数。每个成功的呼叫都会从单个陷阱返回数据。它返回FALSE,表示其参数不表示有效的陷阱数据,并停止可扩展代理的重复调用。

扩展代理不得释放【variableBindings】参数的内存。可扩展代理自动执行此操作。使用SnmpUtilMemAlloc功能为每个RFC1157VarBind结构分配内存。

重要的是要注意,早期的文档指出,扩展代理应该为企业对象标识符动态分配内存,因为可扩展代理将在发送陷阱后尝试释放内存。可扩展代理不会释放与企业对象标识符相关联的内存。建议您返回指向静态AsnObjectIdentifier结构的指针。

也可以看看

SetEvent, SnmpUtilMemAlloc, SnmpUtilVarBindListFree, RFC1157VarBindList, SnmpExtensionInit