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 |
---|---|
|
La función SnmpStartup no se completó correctamente. |
|
Error durante la asignación de memoria. |
|
El parámetro session no es válido. |
|
Uno o ambos parámetros de entidad no son válidos. |
|
El parámetro de contexto no es válido. |
|
El parámetro PDU no es válido. |
|
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. |
|
La capa de transporte de red no se inicializó. |
|
La capa de transporte de red no admite el protocolo SNMP. |
|
Error en el subsistema de red. |
|
Error de recurso en la capa de transporte de red. |
|
La entidad especificada por el parámetro srcEntity no se inicializó. |
|
Una llamada de función de capa de transporte de red recibió un parámetro de entrada no válido. |
|
La PDU es demasiado grande para que la capa de transporte de red envíe o reciba. |
|
Error de capa de transporte de red no definida. |
|
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 |