snmpDecodeMsg 函数 (winsnmp.h)
[SNMP 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 请改用 Windows 远程管理,这是 WS-Man 的 Microsoft 实现。]
WinSNMP SnmpDecodeMsg 函数将编码的 SNMP 消息解码为其组件。 此函数执行 WinSNMP SnmpEncodeMsg 函数的相反操作。
语法
SNMPAPI_STATUS SNMPAPI_CALL SnmpDecodeMsg(
[in] HSNMP_SESSION session,
[out] LPHSNMP_ENTITY srcEntity,
[out] LPHSNMP_ENTITY dstEntity,
[out] LPHSNMP_CONTEXT context,
[out] LPHSNMP_PDU pdu,
[in] smiLPCOCTETS msgBufDesc
);
参数
[in] session
WinSNMP 会话的句柄。 此参数是必需的。 有关其他信息,请参阅以下“备注”部分。
[out] srcEntity
指向接收源管理实体句柄的变量的指针。 有关更多信息,请参见下面的“备注”部分。
[out] dstEntity
指向接收目标管理实体句柄的变量的指针。 有关更多信息,请参见下面的“备注”部分。
[out] context
指向变量的指针,该变量接收目标管理实体控制的上下文 (一组托管对象资源) 句柄。
[out] pdu
指向一个变量的指针,该变量接收 (PDU) SNMP 协议数据单元的句柄。
[in] msgBufDesc
指向 smiOCTETS 结构的指针,该结构包含要解码为其组件的 SNMP 消息。 结构的 len 成员指定要处理的最大字节数; ptr 成员指向编码的 SNMP 消息。
返回值
如果函数成功,则返回值为解码的字节数。 此值可以等于或小于 msgBufDesc 参数指向的 smiOCTETS 结构的 len 成员。
如果函数失败,则返回值SNMPAPI_FAILURE。 若要获取扩展的错误信息,请调用 SnmpGetLastError。 SnmpGetLastError 函数可能会返回以下错误之一。
返回代码 | 说明 |
---|---|
|
SnmpStartup 函数未成功完成。 |
|
内存分配期间出错。 |
|
会话参数无效。 |
|
一个或两个实体参数无效。 |
|
上下文参数无效。 |
|
pdu 参数无效。 |
|
输出缓冲区长度不足。 未创建任何输出参数。 |
|
msgBufDesc 参数指示的缓冲区中的 SNMP 消息格式无效。 未创建任何输出参数。 |
|
发生未知或未定义的错误。 |
注解
当应用程序将 SNMPv1 或 SNMPv2C 消息提交到 SnmpDecodeMsg 函数时,Microsoft WinSNMP 实现在 srcEntity 和 dstEntity 参数中返回值零。 这是因为消息格式不包括创建 WinSNMP 实体资源所需的地址信息。
由于成功调用 SnmpDecodeMsg 函数,Microsoft WinSNMP 实现将资源分配给 WinSNMP 应用程序。 建议 WinSNMP 应用程序使用与资源对应的 WinSNMP 函数释放单个资源。 有关详细信息,请参阅释放 WinSNMP 描述符和 WinSNMP 数据管理概念。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winsnmp.h |
Library | Wsnmp32.lib |
DLL | Wsnmp32.dll |