Функция SnmpRecvMsg (winsnmp.h)
[SNMP доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте удаленное управление Windows, которое является реализацией WS-Man майкрософт.]
Функция SnmpRecvMsg WinSNMP извлекает результаты завершенного асинхронного запроса, отправленного вызовом функции SnmpSendMsg , в виде SNMP-сообщения. Функция SnmpRecvMsg также возвращает незавершенные данные ловушки и уведомления, зарегистрированные для сеанса WinSNMP.
Синтаксис
SNMPAPI_STATUS SNMPAPI_CALL SnmpRecvMsg(
[in] HSNMP_SESSION session,
[out] LPHSNMP_ENTITY srcEntity,
[out] LPHSNMP_ENTITY dstEntity,
[out] LPHSNMP_CONTEXT context,
[out] LPHSNMP_PDU PDU
);
Параметры
[in] session
Дескриптор сеанса WinSNMP.
[out] srcEntity
Указатель на переменную, которая получает дескриптор сущности, отправляющей сообщение. Обратите внимание, что параметр srcEntity для функции SnmpRegister указывает дескриптор для объекта управления, который регистрируется для уведомления о ловушке.
[out] dstEntity
Указатель на переменную, которая получает дескриптор сущности, получающей сообщение. Обратите внимание, что параметр dstEntity для функции SnmpRegister указывает дескриптор для объекта управления, который отправляет ловушки.
[out] context
Указатель на переменную, которая получает дескриптор контекста, который представляет собой набор ресурсов управляемого объекта. Сущность, указанная параметром srcEntity , выдает сообщение из этого контекста.
[out] PDU
Указатель на переменную, которая получает дескриптор компонента единицы данных протокола (PDU) сообщения.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение SNMPAPI_SUCCESS, а выходные параметры содержат значения, указанные в предыдущих описаниях параметров.
Если функция завершается сбоем, возвращаемое значение будет SNMPAPI_FAILURE. Если функция завершается сбоем с расширенным кодом ошибки, указывающим на ошибку уровня сетевого транспорта, то есть ошибку, которая начинается с SNMPAPI_TL_, выходные параметры также содержат значения, указанные выше, что позволяет приложению WinSNMP корректно восстанавливаться.
Чтобы получить расширенные сведения об ошибке, вызовите SnmpGetLastError. Функция SnmpGetLastError может возвращать одну из следующих ошибок WinSNMP или сетевого транспортного уровня.
Код возврата | Описание |
---|---|
|
Функция SnmpStartup не была успешно завершена. |
|
Произошла ошибка при выделении памяти. |
|
Недопустимый параметр сеанса . |
|
В настоящее время в очереди указанного сеанса нет сообщений. |
|
Сетевой транспортный уровень не инициализирован. |
|
Сетевой транспортный уровень не поддерживает протокол SNMP. |
|
Произошел сбой сетевой подсистемы. |
|
Произошла ошибка ресурса на уровне сетевого транспорта. |
|
Сущность, указанная параметром dstEntity , недоступна. |
|
Сущность, указанная параметром srcEntity , не инициализирована. |
|
Вызов функции уровня сетевого транспорта получил недопустимый входной параметр. |
|
PDU слишком велик для передачи или получения на уровне сетевого транспорта. |
|
Произошла неопределенная ошибка сетевого транспортного уровня. |
|
Произошла неизвестная или неопределенная ошибка. |
Дополнительные сведения см. в разделе Ошибки сетевого транспорта.
Комментарии
Функция SnmpCreateSession передает дескриптор окна приложения и идентификатор сообщения уведомления в реализацию Microsoft WinSNMP. Когда окно приложения получает сообщение уведомления, указанное параметром wMsg , приложение WinSNMP должно вызвать функцию SnmpRecvMsg с дескриптором сеанса, возвращенным SnmpCreateSession , чтобы получить входящую единицу данных протокола (PDU). Дополнительные сведения см. в разделе Сведения о сообщениях SNMP.
Функция SnmpRecvMsg создает экземпляры четырех объектов и выделяет их ресурсы: два дескриптора сущности, дескриптор контекста и дескриптор PDU. Дескриптор компонента списка привязок переменных возвращаемого PDU не создается, пока приложение WinSNMP не вызовет функцию SnmpGetPduData . Если ему больше не нужны ресурсы, возвращаемые SnmpRecvMsg , приложение WinSNMP должно освободить отдельные ресурсы с помощью функции WinSNMP, соответствующей ресурсу. Дополнительные сведения см. в разделах SnmpFreePdu, SnmpFreeEntity и SnmpFreeContext.
Когда реализация получает ловушки от сущности, работающей на платформе SNMP версии 1 (SNMPv1), она преобразует ловушки в формат SNMP версии 2C (SNMPv2C). Поэтому, когда SnmpRecvMsg доставляет ловушку, она всегда имеет формат SNMPv2C. Дополнительные сведения см. в разделах Преобразование ловушек из SNMPv1 в SNMPv2C и Задачи программирования WinSNMP.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winsnmp.h |
Библиотека | Wsnmp32.lib |
DLL | Wsnmp32.dll |