Поделиться через


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

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

Функция 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 передает реализации дескриптор в окно приложения и идентификатор сообщения уведомления. Если компонент wParam сообщения уведомления, указанного параметром wMsg , равен нулю, приложение WinSNMP должно получить единицу данных входящего протокола (PDU). Для этого приложение вызывает функцию SnmpRecvMsg с дескриптором сеанса, возвращенным SnmpOpen. Если параметр wParam сообщения уведомления не равен нулю, он представляет код ошибки WinSNMP. Код ошибки применяется к PDU, определяемого идентификатором запроса в параметре lParam сообщения уведомления.

Одно приложение WinSNMP может открывать несколько сеансов WinSNMP. Если приложение открывает несколько сеансов с использованием одного дескриптора окна, рекомендуется, чтобы приложение WinSNMP указало уникальный параметр wMsg для каждого сеанса.

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

Сведения об открытии сеанса WinSNMP и указании метода, используемого для информирования сеанса о доступных сообщениях SNMP и асинхронных событиях, см. в разделе SnmpCreateSession. При вызове SnmpCreateSession можно указать уведомление окна или функцию SNMPAPI_CALLBACK для уведомления сеанса.

Дополнительные сведения см. в разделе Сеансы WinSNMP.

Требования

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

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

SNMPAPI_CALLBACK

SnmpCleanup

SnmpClose

SnmpCreateSession

SnmpRecvMsg

Функции WinSNMP

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