SnmpOpen 函数 (winsnmp.h)

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

SnmpOpen 函数请求 Microsoft WinSNMP 实现为 WinSNMP 应用程序打开会话。 此 WinSNMP 函数使实现能够分配和初始化内存、资源、数据结构和通信机制。 SnmpOpen 函数返回新的 WinSNMP 会话的句柄。

注意 开发新的 WinSNMP 应用程序时,建议调用 SnmpCreateSession 函数来打开 WinSNMP 会话,而不是调用 SnmpOpen 函数。
 

语法

HSNMP_SESSION SNMPAPI_CALL SnmpOpen(
  [in] HWND hWnd,
  [in] UINT wMsg
);

参数

[in] hWnd

WinSNMP 应用程序窗口的句柄,用于在异步请求完成或发生陷阱通知时发出通知。

[in] wMsg

指定一个无符号整数,用于标识要发送到 WinSNMP 应用程序窗口的通知消息。

返回值

如果函数成功,则返回值是标识实现为调用应用程序打开的 WinSNMP 会话的句柄。

如果函数失败,则返回值SNMPAPI_FAILURE。 若要获取扩展错误信息,请调用 SnmpGetLastError,并在其会话参数中指定 NULL 值。 SnmpGetLastError 函数可能会返回以下错误之一。

返回代码 说明
SNMPAPI_NOT_INITIALIZED
SnmpStartup 函数未成功完成。
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_HWND_INVALID
hWnd 参数不是有效的窗口句柄。
SNMPAPI_OTHER_ERROR
发生未知或未定义错误。

注解

SnmpOpen 函数返回调用 WinSNMP 应用程序中每个打开的 WinSNMP 会话的唯一句柄。 应用程序必须使用 SnmpOpen 在其他 WinSNMP 函数调用中返回的会话句柄,以便于通过实现来分配和解除分配资源。 当实现将资源分配给单个会话时,它会按顺序释放资源,以响应对会话的 SnmpClose 调用。

SnmpOpen 函数将句柄传递给实现应用程序窗口和通知消息标识符。 如果 wMsg 参数指定的通知消息的 wParam 组件等于零,则 WinSNMP 应用程序必须检索传入的协议数据单元 (PDU) 。 应用程序通过使用 SnmpOpen 返回的会话句柄调用 SnmpRecvMsg 函数来执行此操作。 如果通知消息的 wParam 参数不等于零,则表示 WinSNMP 错误代码。 错误代码适用于由通知消息 的 lParam 参数中的请求标识符标识的 PDU。

一个 WinSNMP 应用程序可以打开多个 WinSNMP 会话。 如果应用程序使用相同的窗口句柄打开多个会话,建议 WinSNMP 应用程序为每个会话指定唯一 的 wMsg 参数。

建议 WinSNMP 应用程序针对由于调用 SnmpOpen 函数而打开的每个会话调用 SnmpClose 函数。 如果 WinSNMP 应用程序意外终止,它必须在终止之前调用 SnmpCleanup ,以使实现能够解除分配所有资源。 实现将一个 SnmpCleanup 调用视为一系列 SnmpClose 调用,该实现在调用 SnmpOpen 后为每个会话打开一个调用。

有关打开 WinSNMP 会话并指定用于通知会话可用 SNMP 消息和异步事件的方法的信息,请参阅 SnmpCreateSession。 调用 SnmpCreateSession 时,可以指定窗口通知消息或 SNMPAPI_CALLBACK 函数来通知会话。

有关详细信息,请参阅 WinSNMP 会话

要求

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

另请参阅

SNMPAPI_CALLBACK

SnmpCleanup

SnmpClose

SnmpCreateSession

SnmpRecvMsg

WinSNMP 函数

WinSNMP API 概述