SnmpStartupEx 函数 (winsnmp.h)

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

SnmpStartupEx 函数通知 Microsoft WinSNMP 实现 WinSNMP 应用程序需要实现的服务。 WinSNMP SnmpStartupEx 函数使实现能够初始化并返回 Windows SNMP 应用程序编程接口的版本 (WinSNMP API) 、实现支持的 SNMP 通信级别以及实现的默认转换和重新传输模式。

如果安装了具有 Service Pack 1 的 Windows Server 2003 (SP1) 或更高版本,则应使用此函数而不是 SnmpStartupSnmpStartupEx 支持在同一应用程序中使用 WinSNMP 的多个独立软件模块。

注意 WinSNMP 应用程序必须在调用任何其他 WinSNMP 函数之前成功调用 SnmpStartupEx 函数。
 

语法

SNMPAPI_STATUS SNMPAPI_CALL SnmpStartupEx(
  [out] smiLPUINT32 nMajorVersion,
  [out] smiLPUINT32 nMinorVersion,
  [out] smiLPUINT32 nLevel,
  [out] smiLPUINT32 nTranslateMode,
  [out] smiLPUINT32 nRetransmitMode
);

参数

[out] nMajorVersion

指向无符号长整数变量的指针,用于接收实现支持的 WinSNMP API 的主版本号。 例如,为了指示实现支持 WinSNMP 版本 2.0,函数返回值 2。

[out] nMinorVersion

指向无符号长整数变量的指针,用于接收实现支持的 WinSNMP API 的次要版本号。 例如,为了指示实现支持 WinSNMP 版本 2.0,函数返回值 0。

[out] nLevel

指向无符号长整数变量的指针,用于接收实现支持的最高级别的 SNMP 通信。 成功返回后,此参数包含值 2。 有关级别 2 支持的说明,请参阅 SNMP 支持级别

[out] nTranslateMode

指向无符号长整数变量的指针,用于接收对实现有效的默认转换模式。 转换模式适用于实现如何解释 WinSNMP 应用程序传递给 SnmpStrToEntity 函数的实体参数。 转换模式也适用于 WinSNMP 应用程序传递给 SnmpStrToContext 函数的字符串参数。 此参数的取值可为下列值之一:

含义
SNMPAPI_TRANSLATED
实现使用其数据库来转换 SNMP 实体和托管对象的用户友好名称。 实现将它们转换为其 SNMPv1 或 SNMPv2C 组件。
SNMPAPI_UNTRANSLATED_V1
实现将 SNMP 实体参数解释为 SNMP 传输地址,将上下文参数解释为 SNMP 社区字符串。 对于 SNMPv2 目标实体,实现会创建在版本字段中包含值为零的传出 SNMP 消息。
SNMPAPI_UNTRANSLATED_V2
实现将 SNMP 实体参数解释为 SNMP 传输地址,将上下文参数解释为 SNMP 社区字符串。 对于 SNMPv2 目标实体,实现会创建在版本字段中包含值 1 的传出 SNMP 消息。
 

有关其他信息,请参阅 设置实体和上下文转换模式

[out] nRetransmitMode

指向无符号长整数变量的指针,用于接收对实现有效的默认重新传输模式。 此参数的取值可为下列值之一:

含义
SNMPAPI_OFF
实现不执行 WinSNMP 应用程序的重新传输策略。
SNMPAPI_ON
实现正在执行 WinSNMP 应用程序的重新传输策略。
 

有关其他信息,请参阅 关于重新传输

返回值

如果函数成功,则返回值SNMPAPI_SUCCESS,并且参数包含适当的值,如前面的参数说明所示。

如果函数失败,则返回值SNMPAPI_FAILURE。 若要获取扩展错误信息,请调用 SnmpGetLastError,并在其会话参数中指定 NULL 值。 SnmpGetLastError 函数可能会返回以下错误之一。 有关其他信息,请参阅本文档后面的“备注”部分。

返回代码 说明
SNMPAPI_TL_RESOURCE_ERROR
启动期间发生资源分配错误。
SNMPAPI_TL_NOT_INITIALIZED
SnmpStartupEx 函数未正确初始化。
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_OTHER_ERROR
发生未知或未定义错误。

注解

WinSNMP 应用程序在调用任何其他 WinSNMP 函数之前,必须至少成功调用 一次 SnmpStartupEx 函数。 如果 WinSNMP 应用程序在成功调用 SnmpStartupEx 之前调用另一个 WinSNMP 函数,则实现SNMPAPI_NOT_INITIALIZED返回错误。

WinSNMP 应用程序可以调用 SnmpGetLastError 以获取错误信息,或者如果对 SnmpStartupEx 函数的调用失败,请重试 SnmpStartupEx 。 当 SnmpStartupEx 返回SNMPAPI_FAILURE,并且对 SnmpGetLastError 的后续调用返回SNMP_ALLOC_ERROR时,WinSNMP 应用程序可以选择等待。 当实现具有足够的可用资源时,它可以重试对 SnmpStartupEx 的调用。

WinSNMP 应用程序必须调用 SnmpCleanupEx 才能成功调用 SnmpStartupEx。 WinSNMP 实现执行最终清理,其中没有对 SnmpStartup 或 SnmpStartupEx 的未完成成功调用。

有关其他信息,请参阅 SNMP 支持级别关于 SNMP 版本

要求

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

另请参阅

SnmpCleanupEx

SnmpStrToContext

SnmpStrToEntity

WinSNMP API 概述

WinSNMP 函数