Libération des descripteurs WinSNMP

L’environnement de programmation WinSNMP affecte la répartition des ressources de descripteur à l’implémentation WinSNMP ou à l’application WinSNMP, en fonction du composant qui alloue la mémoire pour le descripteur.

Pour libérer les ressources d’un descripteur smiOID ou smiOCTETS , les règles suivantes s’appliquent :

  • Pour les paramètres d’entrée

    Étant donné que l’application WinSNMP alloue la mémoire pour les objets d’entrée avec des longueurs variables, l’application doit libérer cette mémoire à l’aide d’une fonction appropriée. Par exemple, si l’application a alloué les ressources avec un appel à la fonction GlobalAlloc , elle doit utiliser la fonction GlobalFree pour libérer les ressources. Si l’application a alloué les ressources avec un appel à la fonction HeapAlloc , elle doit appeler la fonction HeapFree .

  • Pour les paramètres de sortie

    Un appel à l’une des fonctions suivantes entraîne l’allocation de mémoire pour un descripteur smiOID ou smiOCTETS : SnmpGetVb, SnmpEncodeMsg, SnmpOidCopy, SnmpContextToStr et SnmpStrToOid.

    Étant donné que l’implémentation alloue la mémoire pour ces objets de sortie, l’application doit appeler la fonction SnmpFreeDescriptor pour libérer les ressources. Cette fonction permet à l’implémentation de libérer la mémoire allouée au membre ptr de ces structures.

Pour libérer les ressources d’une structure smiVALUE, une application WinSNMP doit case activée le membre de syntaxe d’une structure smiVALUE afin d’évaluer correctement le membre de valeur de la structure. Si le membre de syntaxe indique que le membre de valeur est un descripteur smiOCTETS ou smiOID , et que l’implémentation a alloué les ressources pour le descripteur, l’application doit appeler SnmpFreeDescriptor. Cela permet à l’implémentation de libérer la mémoire. Si l’application a alloué les ressources, elle doit libérer la mémoire à l’aide d’une fonction appropriée, comme indiqué précédemment.

Pour plus d’informations, consultez Allocation d’objets de mémoire WinSNMP.