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


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

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

Приложение WinSNMP вызывает функцию SnmpSetPort , чтобы изменить порт, назначенный целевой сущности. Функция SnmpSetPort является элементом API WinSNMP версии 2.0.

Синтаксис

SNMPAPI_STATUS SNMPAPI_CALL SnmpSetPort(
  [in] HSNMP_ENTITY hEntity,
  [in] UINT         nPort
);

Параметры

[in] hEntity

Дескриптор конечной сущности WinSNMP. Этот параметр может указать дескриптор сущности, действующей в роли приложения агента SNMP в результате вызова функции SnmpListen . Дополнительные сведения см. в разделе "Примечания".

[in] nPort

Задает целое число без знака, идентифицирующее новое назначение порта для конечной сущности. Если указать локальный адрес, который занят, или указать удаленный адрес, который недоступен, вызов функции SnmpSetPort завершается ошибкой.

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

Если функция выполнена успешно, возвращаемое значение будет SNMPAPI_SUCCESS.

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

Код возврата Описание
SNMPAPI_NOT_INITIALIZED
Функция SnmpStartup не была успешно завершена.
SNMPAPI_OPERATION_INVALID
Сущность, указанная параметром hEntity , уже работает в роли агента в результате вызова функции SnmpListen . Дополнительные сведения см. в разделе "Примечания".
SNMPAPI_ENTITY_INVALID
Недопустимый параметр hEntity . Этот параметр должен быть дескриптором, возвращенным предыдущим вызовом функции SnmpStrToEntity .
SNMPAPI_OTHER_ERROR
Произошла неизвестная или неопределенная ошибка.

Комментарии

Реализация Microsoft WinSNMP назначает порт каждой сущности управления в результате вызова приложением WinSNMP функции SnmpStrToEntity . Если режим SNMPAPI_UNTRANSLATED действует, когда реализация создает сущность, реализация обычно назначает сущности стандартный порт запроса SNMP для соответствующего семейства протоколов; например, UDP 161 или IPX 36879. Если действует режим SNMPAPI_TRANSLATED, реализация назначает порт, указанный для сущности в базе данных WinSNMP. Чтобы получить текущую сущность и режим преобразования контекста, действующий для реализации, приложение может вызвать функцию SnmpGetTranslateMode . Дополнительные сведения см. в разделах Настройка режима преобразования сущностей и контекста и Базы данных WinSNMP.

Вызов функции SnmpSetPort завершается ошибкой, если сущность, указанная параметром hEntity , в настоящее время работает в роли агента. Это связано с тем, что сущность уже назначена порту, отличному от порта, заданного параметром nPort . Чтобы обеспечить назначение приложения агента определенному порту, приложение WinSNMP может выполнить следующие действия.

  1. Вызовите SnmpStrToEntity следующим образом:

    hAgent = SnmpStrToEntity (hSession, <addrString>);

  2. Вызовите SnmpSetPort следующим образом:

    SnmpSetPort (hAgent, <nPort>);

  3. Вызовите SnmpListen следующим образом:

    SnmpListen (hAgent, SNMPAPI_ON);

где <addrString> содержит строковое представление IP-адреса или IPX-адреса, а <nPort> — новое назначение порта для приложения агента.

Обратите внимание, что IPX-адрес содержит сетевой номер, состоящий из восьми шестнадцатеричных цифр (при необходимости заполненный нулевым значением); разделитель (":", "." или "– "); и номер узла, состоящий из 12 шестнадцатеричных цифр (при необходимости заполненных с нуля), например 00000001:00081A0D01C2. Дополнительные сведения см. в разделе Поддержка строк IPX-адресов в WinSNMP.

Требования

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

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

SnmpGetTranslateMode

SnmpListen

SnmpStrToEntity

Функции WinSNMP

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