Libération des descripteurs WinSNMP

L’environnement de programmation WinSNMP affecte la désallocation des ressources de descripteur à l’implémentation WinSNMP ou à l’application WinSNMP, selon le 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 smiOID ou un descripteur 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 pour le membre ptr de ces structures.

Pour libérer les ressources d’une structure smiVALUE , une application WinSNMP doit vérifier le membre de syntaxe d’une structure smiVALUE pour évaluer correctement le membre de valeur de la structure. Si le membre de syntaxe indique que le membre de valeur est un smiOCTETS ou un descripteur 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 mémoire WinSNMP.