Функция 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 может возвращать одну из следующих ошибок.
Код возврата | Описание |
---|---|
|
Функция SnmpStartup не была успешно завершена. |
|
Сущность, указанная параметром hEntity , уже работает в роли агента в результате вызова функции SnmpListen . Дополнительные сведения см. в разделе "Примечания". |
|
Недопустимый параметр hEntity . Этот параметр должен быть дескриптором, возвращенным предыдущим вызовом функции SnmpStrToEntity . |
|
Произошла неизвестная или неопределенная ошибка. |
Комментарии
Реализация Microsoft WinSNMP назначает порт каждой сущности управления в результате вызова приложением WinSNMP функции SnmpStrToEntity . Если режим SNMPAPI_UNTRANSLATED действует, когда реализация создает сущность, реализация обычно назначает сущности стандартный порт запроса SNMP для соответствующего семейства протоколов; например, UDP 161 или IPX 36879. Если действует режим SNMPAPI_TRANSLATED, реализация назначает порт, указанный для сущности в базе данных WinSNMP. Чтобы получить текущую сущность и режим преобразования контекста, действующий для реализации, приложение может вызвать функцию SnmpGetTranslateMode . Дополнительные сведения см. в разделах Настройка режима преобразования сущностей и контекста и Базы данных WinSNMP.
Вызов функции SnmpSetPort завершается ошибкой, если сущность, указанная параметром hEntity , в настоящее время работает в роли агента. Это связано с тем, что сущность уже назначена порту, отличному от порта, заданного параметром nPort . Чтобы обеспечить назначение приложения агента определенному порту, приложение WinSNMP может выполнить следующие действия.
-
Вызовите SnmpStrToEntity следующим образом:
hAgent = SnmpStrToEntity (hSession, <addrString>);
-
Вызовите SnmpSetPort следующим образом:
SnmpSetPort (hAgent, <nPort>);
-
Вызовите SnmpListen следующим образом:
SnmpListen (hAgent, SNMPAPI_ON);
Обратите внимание, что IPX-адрес содержит сетевой номер, состоящий из восьми шестнадцатеричных цифр (при необходимости заполненный нулевым значением); разделитель (":", "." или "– "); и номер узла, состоящий из 12 шестнадцатеричных цифр (при необходимости заполненных с нуля), например 00000001:00081A0D01C2. Дополнительные сведения см. в разделе Поддержка строк IPX-адресов в WinSNMP.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winsnmp.h |
Библиотека | Wsnmp32.lib |
DLL | Wsnmp32.dll |