SnmpExtensionQueryEx, 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 SnmpExtensionQueryEx pour traiter les demandes SNMP qui spécifient des variables dans une ou plusieurs sous-arborescences MIB inscrites par des agents d’extension SNMP. Cette fonction est un élément de l’API de l’agent d’extension SNMP.
Syntaxe
BOOL SNMP_FUNC_TYPE SnmpExtensionQueryEx(
[in] UINT nRequestType,
[in] UINT nTransactionId,
[in, out] SnmpVarBindList *pVarBindList,
[in, out] AsnOctetString *pContextInfo,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Paramètres
[in] nRequestType
Spécifie le type d’opération que le service SNMP demande à l’agent d’extension d’effectuer. Ce paramètre peut prendre les valeurs suivantes.
Pour plus d’informations sur les types de requêtes SET, c’est-à-dire ceux qui commencent par SNMP_EXTENSION_SET_, consultez la section Remarques suivante.
[in] nTransactionId
Spécifie une variable DWORD qui est l’identificateur unique de la PDU de requête SNMP entrante. L’agent d’extension peut utiliser cette valeur pour mettre en corrélation plusieurs appels du service SNMP qui impliquent la même PDU.
[in, out] pVarBindList
Pointeur vers la liste de liaisons de variables contenant les variables d’intérêt.
[in, out] pContextInfo
Pointeur vers une chaîne d’octets qui contient des informations de contexte définies par l’utilisateur.
L’agent d’extension peut utiliser ce paramètre pour stocker les informations de contexte utilisées lors des opérations SNMP SET multiphase. L’agent d’extension doit libérer les ressources associées à ce paramètre pendant la demande CLEANUP. Le service SNMP ne libère aucune ressource associée à ce paramètre. Pour plus d’informations, consultez la section Remarques suivante.
[out] pErrorStatus
Pointeur vers une variable pour recevoir l’erreur status résultat. Ce paramètre peut être l’une des valeurs suivantes définies par SNMPv2C.
[out] pErrorIndex
Pointeur vers une variable pour recevoir le résultat de l’index d’erreur.
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
Le service SNMP appelle la fonction SnmpExtensionQueryEx plusieurs fois pour traiter une requête SNMP SET entrante. Le service peut appeler SnmpExtensionQueryEx pendant la phase de demande TEST, la phase de requête COMMIT, la phase de requête UNDO et la phase de requête CLEANUP.
REQUÊTE DE TEST
Le service SNMP traite un type de requête SET SNMP en appelant d’abord la fonction SnmpExtensionQueryEx avec un dwRequestType de SNMP_EXTENSION_SET_TEST. Le service appelle chaque agent d’extension responsable des liaisons de variable dans la requête. Chaque agent d’extension doit valider les variables dans la liste de liaisons de variables. Ils peuvent éventuellement stocker toutes les informations de contexte requises pour les requêtes suivantes dans la variable pointée par le paramètre pContextInfo .Si la requête TEST échoue, le service lance une requête CLEANUP. Le service appelle à nouveau chaque agent d’extension qui a précédemment retourné TRUE à la requête TEST avec la fonction SnmpExtensionQueryEx . Le service appelle chaque agent d’extension à l’aide du SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Requête COMMIT
Si tous les agents d’extension retournent TRUE à la requête TEST, le service SNMP appelle chaque agent d’extension avec la fonction SnmpExtensionQueryEx , à l’aide de la SNMP_EXTENSION_SET_COMMIT dwRequestType. Le service retourne au contexte de l’agent d’extension les informations que l’agent d’extension a transmises au service. Il s’agit des informations de contexte que l’agent d’extension a transmises dans le paramètre pContextInfo pendant la requête TEST. L’agent d’extension peut utiliser les informations de contexte pour mettre à jour les valeurs des variables spécifiées d’une manière spécifique à l’instrumentation.Si l’agent d’extension prend en charge le traitement de restauration, il peut mettre à jour les informations de contexte dans le paramètre pContextInfo pour le moment. Le service SNMP transmet les informations à l’agent d’extension pendant la demande UNDO.
Si tous les agents d’extension retournent TRUE à la requête COMMIT, le service appelle chaque agent d’extension avec la fonction SnmpExtensionQueryEx , à l’aide de la SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Si un agent d’extension échoue à la requête COMMIT, le service lance également une demande CLEANUP. Le service appelle à nouveau chaque agent d’extension qui a précédemment retourné TRUE à la requête COMMIT avec la fonction SnmpExtensionQueryEx . Le service appelle chaque agent d’extension à l’aide du SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Demande CLEANUP
Le service retourne à l’agent d’extension les informations de contexte passées dans le paramètre pContextInfo pendant la requête TEST ou COMMIT. L’agent d’extension doit libérer les ressources associées au paramètre à ce stade.DEMANDE UNDO
Si un agent d’extension retourne FALSE à la requête COMMIT, le service SNMP termine la requête COMMIT. Le service appelle chaque agent d’extension qui a retourné TRUE à la requête COMMIT avec un dwRequestType de SNMP_EXTENSION_SET_UNDO. Cela signale aux agents d’extension que la requête COMMIT a échoué et qu’ils doivent lancer le traitement de restauration.Les agents d’extension doivent tenter de réinitialiser les valeurs des variables d’intérêt, en rétablissant les valeurs qu’elles étaient avant l’échec de la requête COMMIT. Pour ce faire, les agents d’extension utilisent les informations de contexte retournées dans le paramètre pContextInfo pendant la requête COMMIT.
Si un agent d’extension retourne FALSE à la requête UNDO, l’opération SET entière échoue avec le code d’erreur SNMP_ERRORSTATUS_UNDOFAILED. Si tous les agents d’extension retournent TRUE à la requête UNDO, l’opération SNMP SET échoue avec le code d’erreur défini par l’agent d’extension qui a échoué la requête COMMIT.
Après la demande UNDO, le service appelle toujours chaque agent d’extension avec la fonction SnmpExtensionQueryEx , à l’aide de la SNMP_EXTENSION_SET_CLEANUP dwRequestType.
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)