SnmpMgrGetTrap

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

如果启用了陷阱接收,SnmpMgrGetTrap功能返回未完成的陷阱数据,如果呼叫者未接收到该数据。

BOOL SnmpMgrGetTrap(

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

参数

【企业】

[out]指向生成SNMP陷阱的企业的对象标识符。

【IPAddress】

[out]指向生成SNMP陷阱的企业的IP地址。

【genericTrap】

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

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

【specificTrap】

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

【的timeStamp】

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

【variableBindings】

[out]指向变量绑定列表。

返回值

如果函数返回一个陷阱,返回值为TRUE。

您应该重复调用SnmpMgrGetTrap功能,直到GetLastError 返回值为FALSE。GetLastError也可能会返回以下错误代码:

错误代码含义
SNMP_MGMTAPI_TRAP_ERRORSIndicates errors were encountered; traps are not accessible.
SNMP_MGMTAPI_NOTRAPS表示没有可用的陷阱。
SNMP_MEM_ALLOC_ERROR表示内存分配错误。

备注

您必须使用SnmpUtilMemAlloc功能为RFC1157VarBindList结构的名单成员分配内存,但不需要释放它。

一旦操作系统完成任务,它会发送一个陷阱信号。内部SNMP信号检查陷阱信号,以通知SNMP管理器完成的任务。SnmpMgrTrapListen功能的【phTrapAvailable】参数指向允许事件驱动的SNMP陷阱采集事件。您可以忽略陷阱,并定期轮询SnmpMgrGetTrap陷阱的功能。

获取陷阱的另一种方法是使用WaitForSingleObject函数创建一个等待事件的线程。当事件发生时,线程应使用ResetEvent函数清除事件。那么线程应该重复调用SnmpMgrGetTrap,直到它返回一个值为FALSE。

始终致电SnmpMgrGetTrap SnmpMgrGetTrap功能SnmpMgrGetTrap以接收陷阱。如果SNMP管理员应用程序调用{??989796159} 【第一】来接收陷阱,则返回值为FALSE,即使有陷阱可用。如果应用程序在调用SnmpMgrTrapListen之前调用GetLastErrorGetLastError将返回错误代码SNMP_MGMTAPI_TRAP_ERRORS。

也可以看看

SnmpMgrTrapListen, SnmpUtilMemAlloc, WaitForSingleObject,RFC1157VarBindList, ResetEvent