snmpSetPort 函数 (winsnmp.h)
[SNMP 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 请改用 Windows 远程管理,这是 WS-Man 的 Microsoft 实现。]
WinSNMP 应用程序调用 SnmpSetPort 函数来更改分配给目标实体的端口。 SnmpSetPort 函数是 WinSNMP API 版本 2.0 的元素。
语法
SNMPAPI_STATUS SNMPAPI_CALL SnmpSetPort(
[in] HSNMP_ENTITY hEntity,
[in] UINT nPort
);
参数
[in] hEntity
WinSNMP 目标实体的句柄。 此参数可以指定由于调用 SnmpListen 函数而充当 SNMP 代理应用程序角色的实体的句柄。 有关更多信息,请参见下面的“备注”部分。
[in] nPort
指定标识目标实体的新端口分配的无符号整数。 如果指定了正忙的本地地址,或者指定了不可用的远程地址,则对 SnmpSetPort 函数的调用会失败。
返回值
如果函数成功,则返回值SNMPAPI_SUCCESS。
如果函数失败,则返回值SNMPAPI_FAILURE。 若要获取扩展的错误信息,请调用 SnmpGetLastError,并在其会话参数中指定 NULL 值。 SnmpGetLastError 函数可能会返回以下错误之一。
返回代码 | 说明 |
---|---|
|
SnmpStartup 函数未成功完成。 |
|
由于调用 SnmpListen 函数,由 hEntity 参数指定的实体已在代理角色中运行。 有关更多信息,请参见下面的“备注”部分。 |
|
hEntity 参数无效。 此参数必须是先前调用 SnmpStrToEntity 函数返回的句柄。 |
|
发生未知或未定义的错误。 |
注解
由于 WinSNMP 应用程序调用 SnmpStrToEntity 函数,Microsoft WinSNMP 实现将端口分配给每个管理实体。 如果在实现创建实体时SNMPAPI_UNTRANSLATED模式有效,则实现通常会将相应协议系列的标准 SNMP 请求端口分配给实体;例如 UDP 161 或 IPX 36879。 如果SNMPAPI_TRANSLATED模式有效,则实现会为 WinSNMP 数据库中的实体分配指定的端口。 若要检索对实现有效的当前实体和上下文转换模式,应用程序可以调用 SnmpGetTranslateMode 函数。 有关详细信息,请参阅 设置实体和上下文转换模式 和 WinSNMP 数据库。
如果 hEntity 参数指定的实体当前正在代理角色中运行,则对 SnmpSetPort 函数的调用将失败。 这是因为实体已分配给 nPort 参数指定的端口以外的端口。 为了确保将代理应用程序分配到特定端口,WinSNMP 应用程序可以执行以下步骤。
-
按如下所示调用 SnmpStrToEntity :
hAgent = SnmpStrToEntity (hSession, <addrString>);
-
按如下所示调用 SnmpSetPort :
SnmpSetPort (hAgent, <nPort>);
-
按如下所示调用 SnmpListen :
SnmpListen (hAgent, SNMPAPI_ON);
请注意,IPX 地址包含一个由八位十六进制数字组成的网络号码 (填充零(如有必要) );分隔符 (“:”、“.”或“ – ”) ;以及一个由 12 个十六进制数字组成的节点编号, () 必要时填充零,例如,00000001:00081A0D01C2。 有关详细信息,请参阅 WinSNMP 中对 IPX 地址字符串的支持。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winsnmp.h |
Library | Wsnmp32.lib |
DLL | Wsnmp32.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈