SnmpRecvMsg 函数 (winsnmp.h)
[SNMP 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 请改用 Windows 远程管理,这是 WS-Man 的 Microsoft 实现。]
WinSNMP SnmpRecvMsg 函数以 SNMP 消息的形式检索由对 SnmpSendMsg 函数的调用提交的已完成异步请求的结果。 SnmpRecvMsg 函数还会返回未完成的陷阱数据和为 WinSNMP 会话注册的通知。
语法
SNMPAPI_STATUS SNMPAPI_CALL SnmpRecvMsg(
[in] HSNMP_SESSION session,
[out] LPHSNMP_ENTITY srcEntity,
[out] LPHSNMP_ENTITY dstEntity,
[out] LPHSNMP_CONTEXT context,
[out] LPHSNMP_PDU PDU
);
参数
[in] session
WinSNMP 会话的句柄。
[out] srcEntity
指向变量的指针,该变量接收发送消息的实体的句柄。 请注意,SnmpRegister 函数的 srcEntity 参数指定注册陷阱通知的管理实体的句柄。
[out] dstEntity
指向变量的指针,该变量接收接收消息的实体的句柄。 请注意,SnmpRegister 函数的 dstEntity 参数指定发送陷阱的管理实体的句柄。
[out] context
指向一个变量的指针,该变量接收上下文的句柄,上下文是一组托管对象资源。 srcEntity 参数指定的实体从此上下文发出消息。
[out] PDU
指向一个变量的指针,该变量接收协议数据单元 (消息的 PDU) 组件。
返回值
如果函数成功,则返回值SNMPAPI_SUCCESS,并且输出参数包含上述参数说明中指示的值。
如果函数失败,则返回值SNMPAPI_FAILURE。 如果函数失败并显示指示网络传输层错误(即以 SNMPAPI_TL_ 开头的)的扩展错误代码,则输出参数还包含前面指示的值,使 WinSNMP 应用程序能够正常恢复。
若要获取扩展错误信息,请调用 SnmpGetLastError。 SnmpGetLastError 函数可能会返回以下 WinSNMP 或网络传输层错误之一。
返回代码 | 说明 |
---|---|
|
SnmpStartup 函数未成功完成。 |
|
内存分配期间出错。 |
|
会话参数无效。 |
|
指定的会话目前在其队列中没有消息。 |
|
未初始化网络传输层。 |
|
网络传输层不支持 SNMP 协议。 |
|
网络子系统失败。 |
|
网络传输层中发生资源错误。 |
|
dstEntity 参数指定的实体不可用。 |
|
srcEntity 参数指定的实体未初始化。 |
|
网络传输层函数调用收到无效的输入参数。 |
|
PDU 太大,网络传输层无法发送或接收。 |
|
发生未定义的网络传输层错误。 |
|
发生未知或未定义错误。 |
有关其他信息,请参阅 网络传输错误。
注解
SnmpCreateSession 函数将应用程序窗口句柄和通知消息标识符传递给 Microsoft WinSNMP 实现。 当应用程序窗口收到由 wMsg 参数指定的通知消息时,WinSNMP 应用程序必须使用 SnmpCreateSession 返回的会话句柄调用 SnmpRecvMsg 函数,以检索传入的协议数据单元 (PDU) 。 有关其他信息,请参阅 关于 SNMP 消息。
SnmpRecvMsg 函数实例化四个对象并分配其资源:两个实体句柄、一个上下文句柄和一个 PDU 句柄。 在 WinSNMP 应用程序调用 SnmpGetPduData 函数之前,不会实例化返回的 PDU 的变量绑定列表组件的句柄。 当它不再需要 SnmpRecvMsg 返回的资源时,WinSNMP 应用程序必须使用对应于该资源的 WinSNMP 函数释放各个资源。 有关其他信息,请参阅 SnmpFreePdu、 SnmpFreeEntity 和 SnmpFreeContext。
当实现从在 SNMP 版本 1 框架 (SNMPv1) 下运行的实体接收陷阱时,它将陷阱转换为 SNMP 版本 2C (SNMPv2C) 格式。 因此,当 SnmpRecvMsg 提供陷阱时,它始终采用 SNMPv2C 格式。 有关其他信息,请参阅 将陷阱从 SNMPv1 转换为 SNMPv2C 和 WinSNMP 编程任务。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winsnmp.h |
Library | Wsnmp32.lib |
DLL | Wsnmp32.dll |