snmpEncodeMsg 函数 (winsnmp.h)

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

Microsoft WinSNMP 实现使用 WinSNMP SnmpEncodeMsg 函数中传递的参数对 SNMP 消息进行编码。 实现将编码的 SNMP 消息返回到 msgBufDesc 参数指定的缓冲区中的 WinSNMP 应用程序。

语法

SNMPAPI_STATUS SNMPAPI_CALL SnmpEncodeMsg(
  [in]  HSNMP_SESSION session,
  [in]  HSNMP_ENTITY  srcEntity,
  [in]  HSNMP_ENTITY  dstEntity,
  [in]  HSNMP_CONTEXT context,
  [in]  HSNMP_PDU     pdu,
  [out] smiLPOCTETS   msgBufDesc
);

参数

[in] session

WinSNMP 会话的句柄。

[in] srcEntity

管理实体的句柄,该实体启动对 SNMP 消息进行编码的请求。

[in] dstEntity

目标管理实体的句柄。

[in] context

上下文的句柄 (目标管理实体控制的一组托管对象资源) 。

[in] pdu

包含 SNMP 操作请求的 PDU 的句柄。

[out] msgBufDesc

指向接收编码的 SNMP 消息 的 smiOCTETS 结构的指针。

返回值

如果函数成功,则返回值为编码的 SNMP 消息的长度(以字节为单位)。 此数字也是 msgBufDesc 参数指向的 smiOCTETS 结构的 len 成员的值。

如果函数失败,则返回值SNMPAPI_FAILURE。 有关其他信息,请参阅以下“备注”部分。 若要获取扩展的错误信息,请调用 SnmpGetLastErrorSnmpGetLastError 函数可能会返回以下错误之一。

返回代码 说明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函数未成功完成。
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_SESSION_INVALID
会话参数无效。
SNMPAPI_ENTITY_INVALID
一个或两个实体参数无效。
SNMPAPI_CONTEXT_INVALID
上下文参数无效。
SNMPAPI_PDU_INVALID
pdu 参数无效。
SNMPAPI_OTHER_ERROR
发生未知或未定义的错误。

注解

传递给 SnmpEncodeMsg 函数的前五个参数与传递给 SnmpSendMsg 函数的参数相同。

WinSNMP 应用程序必须调用 SnmpFreeDescriptor 函数来释放为 smiOCTETS 结构的 ptr 成员分配的资源。 这是 msgBufDesc 参数指向的结构。 有关详细信息,请参阅 WinSNMP 数据管理概念

在输入时, SnmpEncodeMsg 函数忽略 msgBufDesc 参数指向的结构的成员。 如果函数成功完成,则实现将覆盖 结构的成员。

实现验证前五个输入参数的格式。 如果其中一个参数无效, SnmpEncodeMsg 返回 SNMPAPI_FAILURE,SnmpGetLastError 返回扩展错误代码。

要求

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

另请参阅

SnmpDecodeMsg

SnmpFreeDescriptor

SnmpSendMsg

WinSNMP 函数

WinSNMP API 概述

smiOCTETS