Функция SnmpCleanupEx (winsnmp.h)

[SNMP доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте удаленное управление Windows, которое является реализацией WS-Man майкрософт.]

Функция SnmpCleanupEx выполняет очистку, если в приложении Windows SNMP (WinSNMP) отсутствуют невыполненные успешные вызовы SnmpStartup или SnmpStartupEx . В противном случае количество внутренних ссылок, указывающее текущее количество невыполненных успешных вызовов SnmpStartupEx , уменьшается.

Эту функцию следует использовать вместо SnmpCleanup , если установлена Windows Server 2003 с пакетом обновления 1 (SP1) или более поздней версии. SnmpCleanupEx обеспечивает поддержку нескольких независимых программных модулей, использующих WinSNMP в одном приложении.

Примечание Приложение WinSNMP должно вызывать функцию SnmpCleanupEx для каждого успешного вызова SnmpStartupEx до завершения работы приложения.
 

Синтаксис

SNMPAPI_STATUS SNMPAPI_CALL SnmpCleanupEx();

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет SNMPAPI_SUCCESS. Пока приложение WinSNMP не будет успешно отзывать соответствующую функцию SnmpStartupEx и не будет дополнительных невыполненных успешных вызовов SnmpStartup или SnmpStartupEx, любой другой вызов функции WinSNMP в том же приложении возвращает SNMPAPI_FAILURE с расширенным кодом ошибки SNMPAPI_NOT_INITIALIZED.

Если функция завершается сбоем, возвращаемое значение SNMPAPI_FAILURE, но приложению WinSNMP не нужно повторять вызов SnmpCleanupEx. Чтобы получить расширенные сведения об ошибке, вызовите SnmpGetLastError , указав значение NULL в параметре сеанса . Функция SnmpGetLastError может возвращать одну из следующих ошибок.

Код возврата Описание
SNMPAPI_ALLOC_ERROR
Ошибка при выделении памяти.
SNMPAPI_OTHER_ERROR
Функция SnmpStartupEx не завершилась успешно, или произошла неизвестная или неопределенная ошибка.

Комментарии

Прежде чем приложение WinSNMP вызовет SnmpCleanupEx, оно должно вызывать функцию SnmpClose один раз для каждого сеанса, который открывается реализацией в результате вызова функции SnmpCreateSession .

Когда приложение WinSNMP вызывает функцию SnmpCleanupEx , реализация освобождает все ресурсы, выделенные приложению, если также отсутствуют невыполненные успешные вызовы SnmpStartup или SnmpStartupEx. Однако рекомендуется, чтобы приложение WinSNMP освободило определенные ресурсы, выделенные для него реализацией, с помощью функции WinSNMP, соответствующей ресурсу. Дополнительные сведения об освобождении отдельных ресурсов см. в разделах SnmpFreeEntity, SnmpFreeVbl, SnmpFreeDescriptor, SnmpFreeContext и SnmpFreePdu.

Если приложение WinSNMP должно выполнить аварийный выход и оно вызывает SnmpCleanupEx без освобождения отдельных ресурсов и без вызова SnmpClose для каждого открытого сеанса, реализация освобождает все ресурсы, выделенные приложению WinSNMP. Тем не менее, чтобы включить эту функцию в реализации, приложение должно по-прежнему вызывать SnmpCleanupEx.

SnmpCleanupEx не следует вызывать, когда библиотека DLL приложения находится в процессе выгрузки.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winsnmp.h
Библиотека Wsnmp32.lib
DLL Wsnmp32.dll

См. также раздел

SnmpClose

SnmpCreateSession

SnmpFreeContext

SnmpFreeDescriptor

SnmpFreeEntity

SnmpFreePdu

SnmpFreeVbl

SnmpStartupEx

Функции WinSNMP

Общие сведения об API WinSNMP