snmpCleanupEx 函数 (winsnmp.h)

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

当 Windows SNMP (WinSNMP) 应用程序中没有未完成的成功调用 SnmpStartupSnmpStartupEx 时,SnmpCleanupEx 函数会执行清理。 否则,指示当前对 SnmpStartupEx 的未完成调用数的内部引用计数将递减。

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

注意 对于每次成功调用 SnmpStartupEx ,WinSNMP 应用程序必须在应用程序终止之前调用 SnmpCleanupEx 函数。
 

语法

SNMPAPI_STATUS SNMPAPI_CALL SnmpCleanupEx();

返回值

如果函数成功,则返回值SNMPAPI_SUCCESS。 在 WinSNMP 应用程序成功召回相应的 SnmpStartupEx 函数并且没有对 SnmpStartupSnmpStartupEx 的其他未完成调用之前,同一应用程序中对 WinSNMP 函数的任何其他调用将返回SNMPAPI_FAILURE,扩展错误代码为 SNMPAPI_NOT_INITIALIZED。

如果函数失败,则返回值SNMPAPI_FAILURE,但 WinSNMP 应用程序不需要重试对 SnmpCleanupEx 的调用。 若要获取扩展的错误信息,请调用 SnmpGetLastError,并在其会话参数中指定 NULL 值。 SnmpGetLastError 函数可能会返回以下错误之一。

返回代码 说明
SNMPAPI_ALLOC_ERROR
内存分配期间出错。
SNMPAPI_OTHER_ERROR
SnmpStartupEx 函数未成功完成,或者发生了未知或未定义的错误。

注解

在 WinSNMP 应用程序调用 SnmpCleanupEx 之前,它应该对由于调用 SnmpCreateSession 函数而打开实现的每个会话调用 SnmpClose 函数一次。

当 WinSNMP 应用程序调用 SnmpCleanupEx 函数时,如果也没有对 SnmpStartupSnmpStartupEx 的未完成调用,则实现将解除分配给应用程序的所有资源。 但是,建议 WinSNMP 应用程序使用与资源对应的 WinSNMP 函数释放实现为其分配的特定资源。 有关释放单个资源的其他信息,请参阅 SnmpFreeEntitySnmpFreeVblSnmpFreeDescriptorSnmpFreeContextSnmpFreePdu

如果 WinSNMP 应用程序必须执行紧急退出,并且它调用 SnmpCleanupEx 而不释放单个资源,也没有为每个打开的会话调用 SnmpClose ,则实现将解除分配给 WinSNMP 应用程序的所有资源。 但是,若要在实现中启用此功能,应用程序仍必须调用 SnmpCleanupEx

当应用程序 DLL 正在卸载时,不得调用 SnmpCleanupEx

要求

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

另请参阅

SnmpClose

SnmpCreateSession

SnmpFreeContext

SnmpFreeDescriptor

SnmpFreeEntity

SnmpFreePdu

SnmpFreeVbl

SnmpStartupEx

WinSNMP 函数

WinSNMP API 概述