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


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

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

Функция WinSNMP SnmpDecodeMsg декодирует закодированное SNMP-сообщение в его компоненты. Эта функция выполняет противоположное действие функции SnmpEncodeMsg WinSNMP.

Синтаксис

SNMPAPI_STATUS SNMPAPI_CALL SnmpDecodeMsg(
  [in]  HSNMP_SESSION   session,
  [out] LPHSNMP_ENTITY  srcEntity,
  [out] LPHSNMP_ENTITY  dstEntity,
  [out] LPHSNMP_CONTEXT context,
  [out] LPHSNMP_PDU     pdu,
  [in]  smiLPCOCTETS    msgBufDesc
);

Параметры

[in] session

Обработка в сеансе WinSNMP. Это обязательный параметр. Дополнительные сведения см. в следующем разделе Примечаний.

[out] srcEntity

Указатель на переменную, которая получает дескриптор объекта управления исходным кодом. Дополнительные сведения см. в разделе "Примечания".

[out] dstEntity

Указатель на переменную, которая получает дескриптор целевой сущности управления. Дополнительные сведения см. в разделе "Примечания".

[out] context

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

[out] pdu

Указатель на переменную, которая получает дескриптор единицы данных протокола SNMP (PDU).

[in] msgBufDesc

Указатель на структуру smiOCTETS , содержащую snmp-сообщение для декодирования в его компоненты. Элемент len структуры указывает максимальное количество обрабатываемых байтов; элемент ptr указывает на закодированное 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_OUTPUT_TRUNCATED
Длина выходного буфера недостаточна. Выходные параметры не созданы.
SNMPAPI_MESSAGE_INVALID
Недопустимый формат сообщения SNMP в буфере, указанном параметром msgBufDesc . Выходные параметры не созданы.
SNMPAPI_OTHER_ERROR
Произошла неизвестная или неопределенная ошибка.

Комментарии

Реализация Microsoft WinSNMP возвращает нулевое значение в параметрах srcEntity и dstEntity , когда приложение отправляет сообщение SNMPv1 или SNMPv2C в функцию SnmpDecodeMsg . Это связано с тем, что формат сообщения не содержит сведения об адресе, необходимые для создания ресурсов сущности WinSNMP.

Реализация Microsoft WinSNMP выделяет ресурсы для приложения WinSNMP в результате успешного вызова функции SnmpDecodeMsg . Рекомендуется, чтобы приложение WinSNMP освобождал отдельные ресурсы с помощью функции WinSNMP, соответствующей ресурсу. Дополнительные сведения см. в разделах Освобождение дескрипторов WinSNMP и Основные понятия Управление данными WinSNMP.

Требования

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

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

SnmpEncodeMsg

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpSendMsg

Функции WinSNMP

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

smiOCTETS