SnmpGetVb 函数 (winsnmp.h)

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

WinSNMP 应用程序调用 SnmpGetVb 函数以从变量绑定列表中检索信息。 此 WinSNMP 函数从 index 参数指定的变量绑定项检索变量名称及其关联值。

语法

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetVb(
  [in]  HSNMP_VBL  vbl,
  [in]  smiUINT32  index,
  [out] smiLPOID   name,
  [out] smiLPVALUE value
);

参数

[in] vbl

要检索的变量绑定列表的句柄。

[in] index

指定标识要检索的变量绑定项的无符号长整数变量。 此变量包含变量绑定项在变量绑定列表中的位置。

此参数的有效值在 1 到 n 的范围内,其中 1 表示变量绑定列表中的第一个变量绑定项,n 是列表中的条目总数。 有关其他信息,请参阅以下“备注”部分。

[out] name

指向 smiOID 结构的指针,用于接收变量绑定条目的变量名称。

[out] value

指向 smiVALUE 结构的指针,用于接收与 name 参数标识的变量关联的值。

如果函数成功,参数指向的结构的语法成员可以是以下语法数据类型之一。 有关其他信息,请参阅 RFC 1902“简单网络管理协议版本 2 的管理信息的结构 (SNMPv2) ”。

语法数据类型 含义
SNMP_SYNTAX_INT
指示 32 位有符号整数变量。
SNMP_SYNTAX_OCTETS
指示二进制或文本数据的八进制字符串变量。
SNMP_SYNTAX_NULL
指示 NULL 值。
SNMP_SYNTAX_OID
指示一个对象标识符变量,该变量是分配的名称,最多包含 128 个子级。
SNMP_SYNTAX_INT32
指示 32 位有符号整数变量。
SNMP_SYNTAX_IPADDR
指示 32 位 Internet 地址变量。 如果使用 SNMPv1 PDU 陷阱格式表示 IPv6 地址,则此值为 0.0.0.0。
SNMP_SYNTAX_CNTR32
指示计数器变量在达到最大值 2^32 () - 1 之前增加。
SNMP_SYNTAX_GAUGE32
指示仪表变量,该变量是一个非负整数,可以增加或减少,但永远不会超过最大值。
SNMP_SYNTAX_TIMETICKS
指示一个计数器变量,该变量度量以百分之一秒为单位的时间,直到其达到最大值 (2^32) – 1。 它是相对于特定计时器事件的非负整数。
SNMP_SYNTAX_OPAQUE
此类型提供向后兼容性,不应用于新的对象类型。 它支持将任意抽象语法表示法 One (ASN.1) 语法传递的功能。
SNMP_SYNTAX_CNTR64
指示计数器变量在达到最大值 (2^64) - 1 之前增加。
SNMP_SYNTAX_UINT32
指示 32 位无符号整数变量。
SNMP_SYNTAX_NOSUCHOBJECT
指示代理不支持与变量对应的对象类型。
SNMP_SYNTAX_NOSUCHINSTANCE
指示操作的对象实例不存在。
SNMP_SYNTAX_ENDOFMIBVIEW
指示 WinSNMP 应用程序正在尝试引用超出代理支持的 MIB 树末尾的对象标识符。

返回值

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

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

返回代码 说明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函数未成功完成。
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_INDEX_INVALID
索引参数无效。
SNMPAPI_VBL_INVALID
vbl 参数无效。
SNMPAPI_OTHER_ERROR
发生未知或未定义错误。

注解

最后三种语法类型描述了 SNMP 版本 2C (SNMPv2C) 框架下的异常情况。

SnmpGetVb 函数返回 name 参数指向的结构中变量绑定条目的变量名称。 它在 参数指向的结构中返回变量的关联值。

在输入时,SnmpGetVb 函数将分别忽略名称参数和参数所指向的 smiOIDsmiVALUE 结构的成员。 如果函数成功完成,Microsoft WinSNMP 实现将覆盖成员。

要用于 索引 参数的 WinSNMP 应用程序的有效值如下所示:

  • 调用 SnmpCountVbl 函数的返回值
  • SNMP_PDU_RESPONSE协议数据单元的错误索引字段 (PDU) 调用 SnmpRecvMsg 函数返回
WinSNMP 应用程序必须调用 SnmpFreeDescriptor 函数,以释放为 name 参数指向的 smiOID 结构的 ptr 成员分配的资源。 应用程序还必须调用 SnmpFreeDescriptor 函数,以便在以下条件下释放为参数指向的 smiVALUE 结构分配的资源。 如果 成员是 smiOCTETSsmiOID 结构,则应用程序必须调用 SnmpFreeDescriptor 来释放为这些结构分配的资源。 有关其他信息,请参阅 WinSNMP 数据管理概念

要求

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

另请参阅

SnmpCountVbl

SnmpFreeDescriptor

SnmpRecvMsg

WinSNMP 函数

WinSNMP API 概述

smiOCTETS

smiOID

smiVALUE