snmpListen 函数 (winsnmp.h)

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

WinSNMP SnmpListen 函数将 WinSNMP 应用程序注册为 SNMP 代理。 代理应用程序调用此函数以通知 Microsoft WinSNMP 实现实体将充当 SNMP 代理的角色。 应用程序还会调用此函数,以在实体不再充当此角色时通知实现。 SnmpListen 函数是 WinSNMP API 版本 2.0 的元素。

语法

SNMPAPI_STATUS SNMPAPI_CALL SnmpListen(
  [in] HSNMP_ENTITY   hEntity,
  [in] SNMPAPI_STATUS lStatus
);

参数

[in] hEntity

WinSNMP 实体的句柄,用于在 Microsoft WinSNMP 实现收到传入的 SNMP 请求消息时通知 (PDU) 。 此参数标识代理应用程序。 有关详细信息,请参阅以下备注和返回值部分。

调用 SnmpCreateSession 函数时,可以指定实现是应使用窗口通知消息还是 SNMPAPI_CALLBACK 函数在 SNMP 消息或异步事件可用时通知应用程序。

[in] lStatus

指定一个无符号长整数变量,该变量指示 由 hEntity 参数标识的 WinSNMP 实体是以 SNMP 代理角色执行,还是不再充当此角色。 此参数的取值可为下列值之一:

含义
SNMPAPI_ON
指定的 WinSNMP 实体正在代理角色中运行。
SNMPAPI_OFF
指定的 WinSNMP 实体在代理角色中不起作用。
 

传递值 SNMPAPI_OFF 会释放分配给实体的资源和分配它的端口。 有关更多信息,请参见下面的“备注”部分。

返回值

如果函数成功,则返回值SNMPAPI_SUCCESS。

如果函数失败,则返回值SNMPAPI_FAILURE。 若要获取扩展错误信息,请调用 SnmpGetLastErrorSnmpGetLastError 函数可能会返回以下错误之一。

返回代码 说明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函数未成功完成。
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_ENTITY_INVALID
hEntity 参数无效。 此参数必须是先前对 SnmpStrToEntity 函数的调用返回的句柄。
SNMPAPI_MODE_INVALID
lStatus 参数无效。
SNMPAPI_NOOP
由 hEntity 参数指定的实体已在 SNMP 代理的角色中运行。
SNMPAPI_TL_RESOURCE_ERROR
存在网络传输层错误。 无法为 hEntity 参数指定的实体创建套接字。
SNMPAPI_TL_OTHER
尝试为 hEntity 参数指定的实体绑定套接字时,网络传输层出错。
SNMPAPI_OTHER_ERROR
发生未知或未定义错误。

注解

指定实体时,显式指定实体的地址系列、接口地址和端口。 这是因为 WinSNMP 将这些属性分配给每个 WinSNMP 实体,因为调用 SnmpStrToEntity 函数。 该实现在向代理应用程序发送通知时,使用当前分配给 由 hEntity 参数指定的实体的地址和端口设置。 有关详细信息,请参阅 SnmpSetPort

为 WinSNMP 会话调用 SnmpClose 函数,为 WinSNMP 应用程序调用 SnmpCleanup 函数时,必须释放与 WinSNMP 代理应用程序关联的所有端口。

有关 SNMP 管理应用程序和代理应用程序的详细信息,请参阅注册 SNMP 代理应用程序和关于 SNMP

要求

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

另请参阅

SnmpCleanup

SnmpClose

SnmpRecvMsg

SnmpSendMsg

SnmpSetPort

SnmpStrToEntity

WinSNMP 函数

WinSNMP API 概述