snmpMgrGetTrap 函数 (mgmtapi.h)

[SNMP 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 请改用 Windows 远程管理,这是 WS-Man 的 Microsoft 实现。]

如果启用了陷阱接收, SnmpMgrGetTrap 函数将返回调用方未收到的未完成的陷阱数据。 此函数是 SNMP 管理 API 的一个元素。

除了此函数返回的信息外, SnmpMgrGetTrapEx 函数还返回传输源的地址和陷阱的社区字符串。

语法

BOOL SNMP_FUNC_TYPE SnmpMgrGetTrap(
  [out] AsnObjectIdentifier *enterprise,
  [out] AsnNetworkAddress   *IPAddress,
  [out] AsnInteger          *genericTrap,
  [out] AsnInteger          *specificTrap,
  [out] AsnTimeticks        *timeStamp,
  [out] RFC1157VarBindList  *variableBindings
);

参数

[out] enterprise

指向 AsnObjectIdentifier 结构的指针,用于接收生成 SNMP 陷阱的企业。

[out] IPAddress

指向变量的指针,用于接收生成 SNMP 陷阱的代理的地址。

[out] genericTrap

指向变量的指针,用于接收泛型陷阱的指示器。 此参数的取值可为下列值之一:

含义
SNMP_GENERICTRAP_COLDSTART
代理正在托管模式下初始化协议实体。 它可能会更改其视图中的对象。
SNMP_GENERICTRAP_WARMSTART
代理正在重新初始化自身,但它不会更改其视图中的对象。
SNMP_GENERICTRAP_LINKDOWN
附加接口已从“up”状态更改为“down”状态。 变量绑定列表中的第一个变量标识接口。
SNMP_GENERICTRAP_LINKUP
附加接口已从“向下”状态更改为“向上”状态。 变量绑定列表中的第一个变量标识接口。
SNMP_GENERICTRAP_AUTHFAILURE
SNMP 实体发送了 SNMP 消息,但它错误地声称属于已知社区。
SNMP_GENERICTRAP_EGPNEIGHLOSS
EGP 对等机已更改为“关闭”状态。 变量绑定列表中的第一个变量标识 EGP 对等方的 IP 地址。
SNMP_GENERICTRAP_ENTERSPECIFIC
发生异常事件,并在具有企业特定值的 specificTrap 参数中标识该事件。

[out] specificTrap

指向变量的指针,用于接收生成的特定陷阱的指示。

[out] timeStamp

指向用于接收时间戳的变量的指针。

[out] variableBindings

指向 SnmpVarBindList 结构的指针,用于接收变量绑定列表。

返回值

如果函数返回陷阱,则返回值为 TRUE。 可以通过在调用后立即调用 SnmpGetLastError 来检索错误的代码。

应重复调用 SnmpMgrGetTrap 函数,直到它返回 FALSE (零) 。 该函数还可能返回以下错误代码。

返回代码 说明
SNMP_MGMTAPI_TRAP_ERRORS
指示遇到错误;陷阱不可访问。
SNMP_MGMTAPI_NOTRAPS
指示没有可用的陷阱。
SNMP_MEM_ALLOC_ERROR
指示内存分配错误。

注解

在调用 SnmpMgrGetTrap 函数之前,应用程序必须始终调用 SnmpMgrTrapListen 函数。 这是因为 SnmpMgrTrapListen 函数的 phTrapAvailable 参数指向的事件句柄启用 SNMP 陷阱的事件驱动获取。 SNMP 陷阱服务提供陷阱时,SNMP 管理 API 会发出应用程序的事件信号。

应用程序还可以定期轮询 SnmpMgrGetTrap 函数以获取陷阱。 在这种情况下,应用程序应重复调用 SnmpMgrGetTrap ,直到函数返回零。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 mgmtapi.h
Library Mgmtapi.lib
DLL Mgmtapi.dll

另请参阅

AsnObjectIdentifier

SNMP 函数

简单网络管理协议 (SNMP) 概述

SnmpMgrTrapListen

SnmpVarBindList