Partager via


SnmpSendMsg, fonction (winsnmp.h)

[SNMP est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. Utilisez plutôt Windows Remote Management, qui est l’implémentation Microsoft de WS-Man.]

Une application WinSNMP appelle la fonction SnmpSendMsg pour demander que l’implémentation De Microsoft WinSNMP transmette une unité de données de protocole SNMP (PDU), sous la forme d’un message SNMP. L’application WinSNMP spécifie une entité source, une entité de destination et un contexte pour la requête.

Si une application WinSNMP attend une PDU en réponse à une requête SnmpSendMsg , elle doit récupérer la PDU. Pour ce faire, l’application doit appeler la fonction SnmpRecvMsg à l’aide du handle de session retourné par SnmpCreateSession.

Syntaxe

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

Paramètres

[in] session

Gérez la session WinSNMP.

[in] srcEntity

Gérez l’entité de gestion qui lance la demande d’envoi du message SNMP.

[in] dstEntity

Gérez l’entité cible qui répondra à la requête SNMP.

[in] context

Gérez le contexte (un ensemble de ressources d’objet managé) que l’entité de gestion cible contrôle.

[in] PDU

Gérez vers l’unité de données de protocole qui contient la demande d’opération SNMP.

Valeur retournée

Si la fonction réussit, la valeur de retour est SNMPAPI_SUCCESS.

Si la fonction échoue, la valeur de retour est SNMPAPI_FAILURE. Pour obtenir des informations d’erreur étendues, appelez SnmpGetLastError. La fonction SnmpGetLastError peut retourner l’une des erreurs winSNMP ou de la couche de transport réseau suivantes.

Code de retour Description
SNMPAPI_NOT_INITIALIZED
La fonction SnmpStartup ne s’est pas terminée correctement.
SNMPAPI_ALLOC_ERROR
Une erreur s’est produite lors de l’allocation de mémoire.
SNMPAPI_SESSION_INVALID
Le paramètre de session n’est pas valide.
SNMPAPI_ENTITY_INVALID
L’un des paramètres d’entité ou les deux n’est pas valide.
SNMPAPI_CONTEXT_INVALID
Le paramètre de contexte n’est pas valide.
SNMPAPI_PDU_INVALID
Le paramètre PDU n’est pas valide.
SNMPAPI_OPERATION_INVALID
L’opération spécifiée dans le champ PDU_type de la PDU est inappropriée pour l’entité de destination. Pour plus d'informations, consultez la section Notes qui suit.
SNMPAPI_TL_NOT_INITIALIZED
La couche de transport réseau n’a pas été initialisée.
SNMPAPI_TL_NOT_SUPPORTED
La couche de transport réseau ne prend pas en charge le protocole SNMP.
SNMPAPI_TL_NOT_AVAILABLE
Le sous-système réseau a échoué.
SNMPAPI_TL_RESOURCE_ERROR
Une erreur de ressource s’est produite dans la couche de transport réseau.
SNMPAPI_TL_SRC_INVALID
L’entité spécifiée par le paramètre srcEntity n’a pas été initialisée.
SNMPAPI_TL_INVALID_PARAM
Un appel de fonction de la couche de transport réseau a reçu un paramètre d’entrée non valide.
SNMPAPI_TL_PDU_TOO_BIG
La PDU est trop grande pour que la couche de transport réseau envoie ou reçoit.
SNMPAPI_TL_OTHER
Une erreur de couche de transport réseau non définie s’est produite.
SNMPAPI_OTHER_ERROR
Une erreur inconnue ou non définie s’est produite.
 

Pour plus d’informations, consultez Erreurs de transport réseau.

Remarques

La fonction SnmpSendMsg s’exécute de manière asynchrone et retourne donc immédiatement.

L’implémentation avertit l’application WinSNMP lorsque la requête asynchrone est terminée. Pour ce faire, l’implémentation envoie un message de notification à la fenêtre spécifiée par les paramètres wMsg et hWnd , respectivement, dans l’appel initial à SnmpCreateSession pour la session. Lorsque la fenêtre d’application reçoit le message de notification, l’application WinSNMP doit récupérer la PDU entrante. Pour ce faire, l’application appelle la fonction SnmpRecvMsg avec le handle de session retourné par SnmpCreateSession.

Lorsqu’une application WinSNMP appelle la fonction SnmpSendMsg , l’implémentation détermine le protocole de transport réseau et l’infrastructure de version SNMP à utiliser pour effectuer la demande de transmission. L’implémentation le détermine en faisant correspondre ses fonctionnalités aux propriétés associées à la session demande et à l’entité de gestion cible. Ces informations sont disponibles à partir des valeurs de la base de données de l’implémentation.

Si une application WinSNMP demande une fonctionnalité disponible sous l’infrastructure SNMP version 2C (SNMPv2C), mais que l’entité cible utilise l’infrastructure SNMP version 1 (SNMPv1), l’implémentation tente de traduire la demande en SNMPv1. Pour ce faire, l’implémentation utilise les procédures définies dans RFC1908, « Coexistence entre la version 1 et la version 2 de l’infrastructure de gestion réseau standard d’Internet ». Si la traduction n’est pas possible, SnmpSendMsg échoue avec le code d’erreur étendu SNMPAPI_OPERATION_INVALID. Cette situation se produit, par exemple, lorsqu’une application tente d’envoyer une PDU avec le type de données SNMP_PDU_InformRequest à une entité de destination SNMPv1.

Pour plus d’informations, consultez Tâches de programmation WinSNMP et À propos des messages SNMP.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winsnmp.h
Bibliothèque Wsnmp32.lib
DLL Wsnmp32.dll

Voir aussi

SnmpCreateSession

SnmpRecvMsg

Fonctions WinSNMP

Vue d’ensemble de l’API WinSNMP