SnmpExtensionQuery, 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 SnmpExtensionQuery pour résoudre les requêtes SNMP qui contiennent des variables dans une ou plusieurs des sous-arborescences MIB inscrites de l’agent d’extension SNMP. Cette fonction est un élément de l’API de l’agent d’extension SNMP.
Syntaxe
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(
[in] BYTE bPduType,
[in, out] SnmpVarBindList *pVarBindList,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Paramètres
[in] bPduType
Spécifie le type de requête PDU SNMP version 1 (SNMPv1). Ce paramètre peut prendre les valeurs suivantes.
Notez que les types de requêtes PDU ont été renommés. Pour plus d’informations, consultez Types de variables SNMP et Types PDU de requête.
[in, out] pVarBindList
Pointeur vers la liste des liaisons de variables.
[out] pErrorStatus
Pointeur vers une variable dans laquelle l’erreur status résultat sera retourné. Ce paramètre peut être l’une des valeurs suivantes définies par SNMPv1.
[out] pErrorIndex
Pointeur vers une variable dans laquelle le résultat de l’index d’erreur est retourné.
Valeur retournée
Si la fonction réussit, la valeur de retour est TRUE.
Si la fonction échoue, la valeur de retour est FALSE.
Remarques
Lorsque le service SNMP reçoit une requête PDU SNMP, il appelle la fonction SnmpExtensionQuery pour traiter la demande. L’agent d’extension doit suivre les règles de la RFC 1157 pour résoudre les liaisons de variable ou générer une erreur.
Si l’agent d’extension ne peut pas résoudre les liaisons de variable sur une requête Get Next , il doit remplacer le champ name de la structure SnmpVarBind par la valeur de l’identificateur d’objet immédiatement après celui de la vue de sous-arborescence MIB actuellement prise en charge. Par exemple, si l’agent d’extension prend en charge la vue .1.3.6.1.4.1.77.1 « , une requête Get Next sur « .1.3.6.1.4.1.77.1.5.1 » entraîne la modification du champ de nom .1.3.6.1.4.1.77.2 ». Cela indique au service SNMP de poursuivre la tentative de résolution des liaisons de variable avec d’autres agents d’extension.
Il est important de noter que le service SNMP et l’agent d’extension peuvent avoir besoin d’échanger de la mémoire allouée dynamiquement pendant un appel à la fonction SnmpExtensionQuery . Le service alloue dynamiquement l’identificateur d’objet dans chaque structure SnmpVarBind qu’il transmet à l’agent d’extension. Toutefois, l’agent d’extension doit libérer cette mémoire pour remplacer l’identificateur d’objet lorsqu’il traite une requête Get Next . L’agent d’extension alloue de la mémoire dynamique pour les types d’objets de longueur variable. Le service SNMP libère cette mémoire une fois l’objet placé dans la PDU de réponse.
Pour éviter l’altération du tas et les fuites de mémoire, le service SNMP et l’agent d’extension doivent utiliser des routines d’allocation de mémoire qui se résolvent sur le même tas. L’agent d’extension doit utiliser la fonction SnmpUtilMemAlloc pour allouer la mémoire qu’il transmet au service SNMP. Il doit utiliser la fonction SnmpUtilMemFree pour libérer la mémoire que le service transmet à l’agent d’extension. Ces fonctions se trouvent dans la bibliothèque de liens dynamiques de l’utilitaire SNMPAPI.DLL.
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
Vue d’ensemble du protocole SNMP (Simple Network Management Protocol)