Partager via


SnmpExtensionTrap, fonction (snmp.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.]

Le service SNMP Microsoft appelle la fonction SnmpExtensionTrap pour récupérer les informations dont le service a besoin pour générer des interruptions pour l’agent d’extension SNMP. Le service appelle cette fonction uniquement après que l’agent d’extension a configuré le handle d’événement d’interruption à l’état signalé lors d’un appel à la fonction SnmpExtensionInit . La fonction SnmpExtensionTrap est un élément de l’API de l’agent d’extension SNMP.

Syntaxe

BOOL SNMP_FUNC_TYPE SnmpExtensionTrap(
  [out] AsnObjectIdentifier *pEnterpriseOid,
  [out] AsnInteger32        *pGenericTrapId,
  [out] AsnInteger32        *pSpecificTrapId,
  [out] AsnTimeticks        *pTimeStamp,
  [out] SnmpVarBindList     *pVarBindList
);

Paramètres

[out] pEnterpriseOid

Pointeur vers une structure AsnObjectIdentifier pour recevoir l’identificateur d’objet de l’entreprise qui a généré l’interruption. Le service SNMP ne libère pas la mémoire pour cette variable.

[out] pGenericTrapId

Pointeur vers une variable pour recevoir une indication de l’interruption générique. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
SNMP_GENERICTRAP_COLDSTART
L’agent initialise des entités de protocole en mode managé. Il peut modifier des objets dans sa vue.
SNMP_GENERICTRAP_WARMSTART
L’agent se réinitialise lui-même, mais ne modifie pas les objets dans sa vue.
SNMP_GENERICTRAP_LINKDOWN
Une interface attachée est passée de l’état « up » à l’état « down ». La première variable identifie l’interface.
SNMP_GENERICTRAP_LINKUP
Une interface attachée est passée de l’état « down » à l’état « up ». La première variable identifie l’interface.
SNMP_GENERICTRAP_AUTHFAILURE
Une entité SNMP a envoyé un message SNMP, mais a faussement prétendu appartenir à une communauté connue.
SNMP_GENERICTRAP_EGPNEIGHLOSS
Un homologue EGP est passé à l’état d’arrêt. La première variable identifie l’adresse IP de l’homologue EGP.
SNMP_GENERICTRAP_ENTERSPECIFIC
Signale un événement extraordinaire identifié dans le paramètre pSpecificTrapId .

[out] pSpecificTrapId

Pointeur vers une variable pour recevoir une indication de l’interruption spécifique générée.

[out] pTimeStamp

Pointeur vers une variable pour recevoir l’horodatage. Il est recommandé d’initialiser ce paramètre avec la valeur retournée par un appel à la fonction SnmpSvcGetUptime .

[out] pVarBindList

Pointeur vers la liste des liaisons de variables. L’agent d’extension doit allouer la mémoire pour ce paramètre. Le service SNMP libère la mémoire avec un appel à la fonction SnmpUtilVarBindListFree .

Valeur retournée

Si la fonction SnmpExtensionTrap retourne une interruption, la valeur de retour est TRUE. Le service SNMP appelle à plusieurs reprises la fonction jusqu’à ce qu’elle retourne la valeur FALSE. Pour plus d’informations, consultez la section Remarques suivante.

Remarques

Le service SNMP appelle à plusieurs reprises la fonction SnmpExtensionTrap lorsque le handle d’événement phSubagentTrapEvent est défini sur l’état signalé. Ce handle est repassé pendant l’appel à la fonction de point d’entrée SnmpExtensionInit . La fonction SnmpExtensionTrap doit retourner TRUE pour indiquer que les paramètres contiennent des données valides pour une seule interruption. La fonction doit retourner FALSE pour indiquer que les paramètres ne représentent pas de données d’interruption valides et pour arrêter les appels répétés du service.

Notez qu’une fois que le service SNMP a envoyé une interruption, il libère la mémoire associée à la liste de liaisons de variables.

Il est important de noter que la documentation précédente indiquait que l’agent d’extension devait allouer dynamiquement de la mémoire pour l’identificateur d’objet d’entreprise, car le service SNMP tenterait de libérer la mémoire après l’envoi d’une interruption. Le service ne libère pas la mémoire associée à l’identificateur d’objet d’entreprise. Il est recommandé de retourner un pointeur vers une structure AsnObjectIdentifier statique à la place.

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 snmp.h

Voir aussi

Fonctions SNMP

SetEvent

Vue d’ensemble du protocole SNMP (Simple Network Management Protocol)

SnmpExtensionInit

SnmpSvcGetUptime

SnmpUtilMemAlloc

SnmpUtilVarBindListFree

SnmpVarBindList