Compartir a través de


Función SnmpRecvMsg (winsnmp.h)

[SNMP está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. En su lugar, use administración remota de Windows, que es la implementación de Microsoft de WS-Man.]

La función SnmpRecvMsg de WinSNMP recupera los resultados de una solicitud asincrónica completada enviada por una llamada a la función SnmpSendMsg , en forma de mensaje SNMP. La función SnmpRecvMsg también devuelve los datos de captura pendientes y las notificaciones registradas para una sesión de WinSNMP.

Sintaxis

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
);

Parámetros

[in] session

Controla la sesión de WinSNMP.

[out] srcEntity

Puntero a una variable que recibe un identificador a la entidad que envía el mensaje. Tenga en cuenta que el parámetro srcEntity de la función SnmpRegister especifica un identificador para la entidad de administración que se registra para la notificación de captura.

[out] dstEntity

Puntero a una variable que recibe un identificador de la entidad que recibe el mensaje. Tenga en cuenta que el parámetro dstEntity de la función SnmpRegister especifica un identificador para la entidad de administración que envía capturas.

[out] context

Puntero a una variable que recibe un identificador del contexto, que es un conjunto de recursos de objeto administrados. La entidad especificada por el parámetro srcEntity emite el mensaje de este contexto.

[out] PDU

Puntero a una variable que recibe un identificador para el componente de unidad de datos de protocolo (PDU) del mensaje.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es SNMPAPI_SUCCESS y los parámetros de salida contienen los valores indicados en las descripciones de parámetros anteriores.

Si se produce un error en la función, el valor devuelto se SNMPAPI_FAILURE. Si se produce un error en la función con un código de error extendido que indica un error de capa de transporte de red, es decir, uno que comienza por SNMPAPI_TL_, los parámetros de salida también contienen los valores indicados anteriormente para permitir que la aplicación WinSNMP se recupere correctamente.

Para obtener información de error extendida, llame a SnmpGetLastError. La función SnmpGetLastError puede devolver uno de los siguientes errores de la capa de transporte de red o WinSNMP.

Código devuelto Descripción
SNMPAPI_NOT_INITIALIZED
La función SnmpStartup no se completó correctamente.
SNMPAPI_ALLOC_ERROR
Error durante la asignación de memoria.
SNMPAPI_SESSION_INVALID
El parámetro session no es válido.
SNMPAPI_NOOP
La sesión especificada no tiene ningún mensaje en su cola en este momento.
SNMPAPI_TL_NOT_INITIALIZED
No se inicializó la capa de transporte de red.
SNMPAPI_TL_NOT_SUPPORTED
La capa de transporte de red no admite el protocolo SNMP.
SNMPAPI_TL_NOT_AVAILABLE
Error en el subsistema de red.
SNMPAPI_TL_RESOURCE_ERROR
Error de recurso en la capa de transporte de red.
SNMPAPI_TL_UNDELIVERABLE
La entidad especificada por el parámetro dstEntity no está disponible.
SNMPAPI_TL_SRC_INVALID
La entidad especificada por el parámetro srcEntity no se inicializó.
SNMPAPI_TL_INVALID_PARAM
Una llamada de función de capa de transporte de red recibió un parámetro de entrada no válido.
SNMPAPI_TL_PDU_TOO_BIG
La PDU es demasiado grande para que la capa de transporte de red envíe o reciba.
SNMPAPI_TL_OTHER
Error de capa de transporte de red no definida.
SNMPAPI_OTHER_ERROR
Se produjo un error desconocido o no definido.
 

Para obtener más información, consulte Errores de transporte de red.

Comentarios

La función SnmpCreateSession pasa un identificador de ventana de aplicación y un identificador de mensaje de notificación a la implementación de Microsoft WinSNMP. Cuando la ventana de la aplicación recibe el mensaje de notificación especificado por el parámetro wMsg , la aplicación WinSNMP debe llamar a la función SnmpRecvMsg con el identificador de sesión devuelto por SnmpCreateSession para recuperar una unidad de datos de protocolo entrante (PDU). Para obtener más información, vea Acerca de los mensajes SNMP.

La función SnmpRecvMsg crea una instancia de cuatro objetos y asigna sus recursos: dos identificadores de entidad, un identificador de contexto y un identificador PDU. El identificador del componente de lista de enlaces de variables del PDU devuelto no se crea una instancia hasta que la aplicación WinSNMP llama a la función SnmpGetPduData . Cuando ya no necesita los recursos SnmpRecvMsg , la aplicación WinSNMP debe liberar los recursos individuales mediante la función WinSNMP que corresponde al recurso. Para obtener más información, consulte SnmpFreePdu, SnmpFreeEntity y SnmpFreeContext.

Cuando la implementación recibe capturas de una entidad que funciona con el marco de la versión 1 de SNMP (SNMPv1), traduce las capturas al formato SNMP versión 2C (SNMPv2C). Por lo tanto, cuando SnmpRecvMsg entrega una captura, siempre está en el formato SNMPv2C. Para obtener más información, consulte Traducción de capturas de SNMPv1 a SNMPv2C y Tareas de programación winSNMP.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winsnmp.h
Library Wsnmp32.lib
Archivo DLL Wsnmp32.dll

Consulte también

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpGetPduData

SnmpRegister

SnmpSendMsg

Funciones winSNMP

Introducción a la API winSNMP