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 |
---|---|
|
La fonction SnmpStartup ne s’est pas terminée correctement. |
|
Une erreur s’est produite lors de l’allocation de mémoire. |
|
Le paramètre de session n’est pas valide. |
|
L’un des paramètres d’entité ou les deux n’est pas valide. |
|
Le paramètre de contexte n’est pas valide. |
|
Le paramètre PDU n’est pas valide. |
|
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. |
|
La couche de transport réseau n’a pas été initialisée. |
|
La couche de transport réseau ne prend pas en charge le protocole SNMP. |
|
Le sous-système réseau a échoué. |
|
Une erreur de ressource s’est produite dans la couche de transport réseau. |
|
L’entité spécifiée par le paramètre srcEntity n’a pas été initialisée. |
|
Un appel de fonction de la couche de transport réseau a reçu un paramètre d’entrée non valide. |
|
La PDU est trop grande pour que la couche de transport réseau envoie ou reçoit. |
|
Une erreur de couche de transport réseau non définie s’est produite. |
|
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 |