Fonction SnmpGetPduData (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. Au lieu de cela, utilisez La gestion à distance Windows, qui est l’implémentation Microsoft de WS-Man.]

La fonction SnmpGetPduData WinSNMP retourne les champs de données sélectionnés à partir d’une unité de données de protocole SNMP (PDU) spécifiée.

Syntaxe

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetPduData(
  [in]  HSNMP_PDU   PDU,
  [out] smiLPINT    PDU_type,
  [out] smiLPINT32  request_id,
  [out] smiLPINT    error_status,
  [out] smiLPINT    error_index,
  [out] LPHSNMP_VBL varbindlist
);

Paramètres

[in] PDU

Gérez le PDU SNMP.

[out] PDU_type

Pointeur vers une variable qui reçoit le champ PDU_type du PDU spécifié. Ce paramètre peut être NULL ou l’une des valeurs suivantes.

Valeur Signification
SNMP_PDU_GET
Recherchez et récupérez une valeur à partir d’une variable SNMP spécifiée.
SNMP_PDU_GETNEXT
Recherchez et récupérez la valeur d’une variable SNMP sans connaître le nom exact de la variable.
SNMP_PDU_RESPONSE
Répondre à une demande de SNMP_PDU_GET ou de SNMP_PDU_GETNEXT .
SNMP_PDU_SET
Stockez une valeur dans une variable SNMP spécifiée.
SNMP_PDU_GETBULK
Recherchez et récupérez plusieurs valeurs avec une seule requête.
SNMP_PDU_TRAP
Alerte le système de gestion à un événement extraordinaire sous SNMPv2C.

[out] request_id

Pointeur vers une variable qui reçoit le champ request_id du PDU spécifié. Ce paramètre peut être NULL.

[out] error_status

Pointeur vers une variable qui reçoit le champ error_status du PDU spécifié. Si le paramètre PDU_type est égal à SNMP_PDU_GETBULK, ce paramètre reçoit la valeur du champ non_repeaters de la PDU.

Ce paramètre peut être NULL ou l’une des valeurs suivantes. Les six premières erreurs sont communes aux frameworks SNMP version 1 (SNMPv1) et SNMP version 2C (SNMPv2C). Les erreurs restantes sont disponibles sous SNMPv2C uniquement.

Code d'erreur Signification
SNMP_ERROR_NOERROR
L’agent signale qu’aucune erreur ne s’est produite pendant la transmission.
SNMP_ERROR_TOOBIG
L’agent n’a pas pu placer les résultats de l’opération SNMP demandée dans un seul message SNMP.
SNMP_ERROR_NOSUCHNAME
L’opération SNMP demandée a identifié une variable inconnue.
SNMP_ERROR_BADVALUE
L’opération SNMP demandée a essayé de modifier une variable, mais elle a spécifié une erreur de syntaxe ou de valeur.
SNMP_ERROR_READONLY
L’opération SNMP demandée a essayé de modifier une variable qui n’était pas autorisée à changer, en fonction du profil de la communauté de la variable.
SNMP_ERROR_GENERR
Une erreur autre que l’une de celles répertoriées ici s’est produite lors de l’opération SNMP demandée.
SNMP_ERROR_NOACCESS
La variable SNMP spécifiée n’est pas accessible.
SNMP_ERROR_WRONGTYPE
La valeur spécifie un type qui n’est pas cohérent avec le type requis pour la variable.
SNMP_ERROR_WRONGLENGTH
La valeur spécifie une longueur qui n’est pas cohérente avec la longueur requise pour la variable.
SNMP_ERROR_WRONGENCODING
La valeur contient un encodage ASN.1 (Abstract Syntax Notation One) incohérent avec la balise ASN.1 du champ.
SNMP_ERROR_WRONGVALUE
La valeur ne peut pas être affectée à la variable.
SNMP_ERROR_NOCREATION
La variable n’existe pas et l’agent ne peut pas la créer.
SNMP_ERROR_INCONSISTENTVALUE
La valeur est incohérente avec les valeurs d’autres objets managés.
SNMP_ERROR_RESOURCEUNAVAILABLE
L’attribution de la valeur à la variable nécessite l’allocation de ressources actuellement indisponibles.
SNMP_ERROR_COMMITFAILED
Aucune erreur de validation ne s’est produite, mais aucune variable n’a été mise à jour.
SNMP_ERROR_UNDOFAILED
Aucune erreur de validation ne s’est produite. Certaines variables ont été mises à jour, car il n’était pas possible d’annuler leur affectation.
SNMP_ERROR_AUTHORIZATIONERROR
Une erreur d’autorisation s’est produite.
SNMP_ERROR_NOTWRITABLE
La variable existe, mais l’agent ne peut pas la modifier.
SNMP_ERROR_INCONSISTENTNAME
La variable n’existe pas ; l’agent ne peut pas le créer, car l’objet nommé instance n’est pas cohérent avec les valeurs d’autres objets managés.

[out] error_index

Pointeur vers une variable qui reçoit le champ error_index du PDU spécifié.

Si le paramètre PDU_type est égal à SNMP_PDU_GETBULK, ce paramètre reçoit la valeur du champ max_repetitions du PDU spécifié. Ce paramètre peut être NULL.

[out] varbindlist

Pointeur vers une variable qui reçoit un handle vers le champ de liste des liaisons de variables du PDU spécifié. Ce paramètre peut être NULL. Pour plus d’informations, consultez la section Remarques suivante.

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 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_NOOP
Tous les paramètres de sortie ont la valeur NULL. L’opération SNMP n’a pas été effectuée.
SNMPAPI_PDU_INVALID
Le type PDU n’est pas valide.
SNMPAPI_OTHER_ERROR
Une erreur inconnue ou non définie s’est produite.

Remarques

Tous les paramètres de la fonction SnmpGetPduData sont requis. Toutefois, tous les paramètres, à l’exception du paramètre PDU , peuvent avoir la valeur NULL. Dans les paramètres que l’application transmet comme NULL, la fonction SnmpGetPduData ne retourne pas de valeur.

La fonction SnmpGetPduData retourne toujours un handle à un nouvel objet de liste de liaisons de variable si le paramètre varbindlist n’est pas NULL. En outre, si le paramètre PDU spécifie une nouvelle PDU, la fonction attache également un handle à la nouvelle PDU.

Lorsqu’une application appelle SnmpGetPduData avec un paramètre varbindlist qui n’est pas NULL, mais que le paramètre PDU spécifie un PDU existant, la fonction retourne un handle à une nouvelle liste de liaisons de variables en double. L’appel de fonction ne perturbe pas le handle attaché à la PDU existante. Un PDU existant est celui qu’une application crée avec un appel à la fonction SnmpCreatePdu , ou celui que l’application reçoit et lit ensuite à l’aide d’un appel à SnmpGetPduData.

Lorsqu’une application crée une PDU avec SnmpCreatePdu, ou après que l’application a lu un PDU à l’aide de SnmpGetPduData, l’implémentation de Microsoft WinSNMP s’attend à ce que l’application « connaisse » les valeurs des champs PDU. Si une application lit une PDU une deuxième fois avec SnmpGetPduData, l’appel génère une copie de la liste des liaisons de variables de la PDU spécifiée. Ce type d’appel à SnmpGetPduData duplique également le handle dans le PDU.

Configuration requise

   
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

SnmpCreatePdu

SnmpDuplicateVbl

Fonctions WinSNMP

Vue d’ensemble de l’API WinSNMP