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

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

Реализация Microsoft WinSNMP использует параметры, переданные в функции SnmpEncodeMsg WinSNMP, для кодирования сообщения SNMP. Реализация возвращает закодированное сообщение SNMP приложению WinSNMP в буфере, указанном параметром msgBufDesc .

Синтаксис

SNMPAPI_STATUS SNMPAPI_CALL SnmpEncodeMsg(
  [in]  HSNMP_SESSION session,
  [in]  HSNMP_ENTITY  srcEntity,
  [in]  HSNMP_ENTITY  dstEntity,
  [in]  HSNMP_CONTEXT context,
  [in]  HSNMP_PDU     pdu,
  [out] smiLPOCTETS   msgBufDesc
);

Параметры

[in] session

Дескриптор сеанса WinSNMP.

[in] srcEntity

Дескриптор сущности управления, которая инициирует запрос на кодирование SNMP-сообщения.

[in] dstEntity

Дескриптор целевой сущности управления.

[in] context

Обработка в контексте (наборе ресурсов управляемого объекта), которым управляет целевая сущность управления.

[in] pdu

Дескриптор PDU, который содержит запрос операции SNMP.

[out] msgBufDesc

Указатель на структуру smiOCTETS , которая получает закодированное сообщение SNMP.

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

Если функция выполняется успешно, возвращаемое значение равно длине закодированного SNMP-сообщения в байтах. Это число также является значением элемента len структуры smiOCTETS , на которую указывает параметр msgBufDesc .

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

Код возврата Описание
SNMPAPI_NOT_INITIALIZED
Функция SnmpStartup не была успешно завершена.
SNMPAPI_ALLOC_ERROR
Произошла ошибка при выделении памяти.
SNMPAPI_SESSION_INVALID
Недопустимый параметр сеанса .
SNMPAPI_ENTITY_INVALID
Один или оба параметра сущности являются недопустимыми.
SNMPAPI_CONTEXT_INVALID
Недопустимый параметр контекста .
SNMPAPI_PDU_INVALID
Недопустимый параметр pdu .
SNMPAPI_OTHER_ERROR
Произошла неизвестная или неопределенная ошибка.

Комментарии

Первые пять параметров, переданных в функцию SnmpEncodeMsg , являются теми же параметрами, которые передаются в функцию SnmpSendMsg .

Приложение WinSNMP должно вызывать функцию SnmpFreeDescriptor , чтобы освободить ресурсы, выделенные для элемента ptr структуры smiOCTETS . Это структура, на которую указывает параметр msgBufDesc . Дополнительные сведения см. в статье Основные понятия Управление данными WinSNMP.

На входных данных функция SnmpEncodeMsg игнорирует элементы структуры, на которые указывает параметр msgBufDesc . Реализация перезаписывает члены структуры при успешном завершении функции.

Реализация проверяет формат первых пяти входных параметров. Если один из параметров недопустим, SnmpEncodeMsg возвращает SNMPAPI_FAILURE, а SnmpGetLastError — расширенный код ошибки.

Требования

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

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

SnmpDecodeMsg

SnmpFreeDescriptor

SnmpSendMsg

Функции WinSNMP

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

smiOCTETS