Функция 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 может возвращать одну из следующих ошибок.
Код возврата | Описание |
---|---|
|
Не удалось выполнить функцию SnmpStartup . |
|
Ошибка при выделении памяти. |
|
Недопустимый параметр сеанса . |
|
Один или оба параметра сущности недопустимы. |
|
Недопустимый параметр контекста . |
|
Недопустимый параметр pdu . |
|
Длина выходного буфера недостаточна. Выходные параметры не созданы. |
|
Недопустимый формат сообщения SNMP в буфере, указанном параметром msgBufDesc . Выходные параметры не созданы. |
|
Произошла неизвестная или неопределенная ошибка. |
Комментарии
Реализация 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 |