Compartir a través de


Función SnmpSendMsg (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 la administración remota de Windows, que es la implementación de Microsoft de WS-Man.]

Una aplicación WinSNMP llama a la función SnmpSendMsg para solicitar que la implementación de Microsoft WinSNMP transmita una unidad de datos de protocolo SNMP (PDU), en forma de mensaje SNMP. La aplicación WinSNMP especifica una entidad de origen, una entidad de destino y un contexto para la solicitud.

Si una aplicación WinSNMP espera una PDU en respuesta a una solicitud SnmpSendMsg , debe recuperar la PDU. Para ello, la aplicación debe llamar a la función SnmpRecvMsg mediante el identificador de sesión devuelto por SnmpCreateSession.

Sintaxis

SNMPAPI_STATUS SNMPAPI_CALL SnmpSendMsg(
  [in] HSNMP_SESSION session,
  [in] HSNMP_ENTITY  srcEntity,
  [in] HSNMP_ENTITY  dstEntity,
  [in] HSNMP_CONTEXT context,
  [in] HSNMP_PDU     PDU
);

Parámetros

[in] session

Controle la sesión de WinSNMP.

[in] srcEntity

Controle a la entidad de administración que inicia la solicitud para enviar el mensaje SNMP.

[in] dstEntity

Controle a la entidad de destino que responderá a la solicitud SNMP.

[in] context

Controle el contexto (un conjunto de recursos de objetos administrados), que controla la entidad de administración de destino.

[in] PDU

Identificador de la unidad de datos de protocolo que contiene la solicitud de operación SNMP.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es SNMPAPI_SUCCESS.

Si se produce un error en la función, el valor devuelto es SNMPAPI_FAILURE. 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_ENTITY_INVALID
Uno o ambos parámetros de entidad no son válidos.
SNMPAPI_CONTEXT_INVALID
El parámetro de contexto no es válido.
SNMPAPI_PDU_INVALID
El parámetro PDU no es válido.
SNMPAPI_OPERATION_INVALID
La operación especificada en el campo PDU_type de la PDU no es adecuada para la entidad de destino. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
SNMPAPI_TL_NOT_INITIALIZED
La capa de transporte de red no se inicializó.
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_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
Error desconocido o indefinido.
 

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

Comentarios

La función SnmpSendMsg se ejecuta de forma asincrónica y, por tanto, devuelve inmediatamente.

La implementación notifica a la aplicación WinSNMP cuando se completa la solicitud asincrónica. La implementación lo hace enviando un mensaje de notificación a la ventana especificada por los parámetros wMsg y hWnd , respectivamente, en la llamada inicial a SnmpCreateSession para la sesión. Cuando la ventana de la aplicación recibe el mensaje de notificación, la aplicación WinSNMP debe recuperar la PDU entrante. La aplicación lo hace llamando a la función SnmpRecvMsg con el identificador de sesión devuelto por SnmpCreateSession.

Cuando una aplicación WinSNMP llama a la función SnmpSendMsg , la implementación determina qué protocolo de transporte de red y marco de versión snmp usar para completar la solicitud de transmisión. La implementación determina esto haciendo coincidir sus funcionalidades con las propiedades asociadas a la sesión de solicitud y con la entidad de administración de destino. Esta información está disponible a partir de los valores de la base de datos de la implementación.

Si una aplicación WinSNMP solicita funcionalidad que está disponible en el marco snmp versión 2C (SNMPv2C), pero la entidad de destino usa el marco snmp versión 1 (SNMPv1), la implementación intenta traducir la solicitud a SNMPv1. Para ello, la implementación usa los procedimientos definidos en RFC1908, "Coexistencia entre la versión 1 y la versión 2 del marco de administración de redes estándar de Internet". Si la traducción no es posible, SnmpSendMsg produce un error con el código de error extendido SNMPAPI_OPERATION_INVALID. Esta situación se produce, por ejemplo, cuando una aplicación intenta enviar una PDU con el tipo de datos SNMP_PDU_InformRequest a una entidad de destino SNMPv1.

Para obtener más información, consulte Tareas de programación de WinSNMP y Acerca de los mensajes SNMP.

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

SnmpCreateSession

SnmpRecvMsg

Funciones winSNMP

Introducción a la API de WinSNMP