snmpSetPduData 函数 (winsnmp.h)

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

WinSNMP SnmpSetPduData 函数更新指定 SNMP 协议数据单元中的选定数据字段 (PDU) 。

语法

SNMPAPI_STATUS SNMPAPI_CALL SnmpSetPduData(
  [in] HSNMP_PDU       PDU,
  [in] const smiINT    *PDU_type,
  [in] const smiINT32  *request_id,
  [in] const smiINT    *non_repeaters,
  [in] const smiINT    *max_repetitions,
  [in] const HSNMP_VBL *varbindlist
);

参数

[in] PDU

SNMP PDU 的句柄。

[in] PDU_type

指向变量的指针,该值用于更新指定 PDU 的PDU_type 字段。 此参数也可以为 NULL

[in] request_id

指向变量的指针,该值用于更新指定 PDU 的 request_id 字段。 此参数也可以为 NULL

[in] non_repeaters

如果 PDU_type 参数等于 SNMP_PDU_GETBULK,则此参数指向具有值的变量,以更新指定 PDU 的non_repeaters 字段。 对于其他 PDU 类型,Microsoft WinSNMP 实现会忽略此参数。 此参数也可以为 NULL

[in] max_repetitions

如果 PDU_type 参数等于 SNMP_PDU_GETBULK,则此参数指向具有值的变量,以更新指定 PDU 的 max_repetitions 字段。 实现将忽略此参数用于其他 PDU 类型。 此参数也可以为 NULL

[in] varbindlist

指向变量的指针,该值更新指定 PDU 的变量绑定列表字段的句柄。 此参数也可以为 NULL

返回值

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

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

返回代码 说明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函数未成功完成。
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_PDU_INVALID
PDU 类型无效。
SNMPAPI_VBL_INVALID
变量绑定列表无效。
SNMPAPI_NOOP
所有输入参数均为 NULL。 未执行 SNMP 操作。
SNMPAPI_OTHER_ERROR
发生未知或未定义错误。

注解

SnmpSetPduData 函数的所有参数都是必需的。 但是,除 PDU 参数之外的所有参数都可以为 NULL。 如果 WinSNMP 应用程序在参数中传递 NULLSnmpSetPduData 不会更新 PDU 中的相应字段。 由于 SnmpSetPduData 将参数作为指向值的指针传递,因此应用程序仍可以使用 NULL 更新 PDU 字段。

一个 PDU 字段的值可以单独有效,但可能会与其他字段的值一起失效。 当应用程序调用 SnmpSendMsgSnmpEncodeMsg 函数时,实现将验证 PDU 和其他消息元素。 实现拒绝无效的 PDU。

可以通过调用 SnmpSetPduData 函数更新的唯一陷阱 PDU 类型是 SNMPv2C 陷阱 PDU。

要求

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

另请参阅

SnmpEncodeMsg

SnmpSendMsg

WinSNMP 函数

WinSNMP API 概述