Liberare i descrittori WinSNMP
L'ambiente di programmazione WinSNMP assegna la deallocation delle risorse del descrittore all'implementazione WinSNMP o all'applicazione WinSNMP, a seconda del componente che alloca la memoria per il descrittore.
Per liberare le risorse per un smiOID o un descrittore smiOCTETS , si applicano le regole seguenti:
Per i parametri di input
Poiché l'applicazione WinSNMP alloca la memoria per gli oggetti di input con lunghezze variabili, l'applicazione deve liberare tale memoria usando una funzione appropriata. Ad esempio, se l'applicazione ha allocato le risorse con una chiamata alla funzione GlobalAlloc , deve usare la funzione GlobalFree per deallocare le risorse. Se l'applicazione ha allocato le risorse con una chiamata alla funzione HeapAlloc , deve chiamare la funzione HeapFree .
Per i parametri di output
Una chiamata a una delle funzioni seguenti comporta l'allocazione della memoria per un smiOID o un descrittore smiOCTETS: SnmpGetVb, SnmpEncodeMsg, SnmpOidCopy, SnmpContextToStr e SnmpStrToOid.
Poiché l'implementazione alloca la memoria per questi oggetti di output, l'applicazione deve chiamare la funzione SnmpFreeDescriptor per deallocare le risorse. Questa funzione consente all'implementazione di liberare la memoria allocata per il membro ptr di queste strutture.
Per liberare le risorse per una struttura smiVALUE , un'applicazione WinSNMP deve controllare il membro della sintassi di una struttura smiVALUE per valutare correttamente il membro valore della struttura. Se il membro della sintassi indica che il membro del valore è un descrittore smiOCTETS o un descrittore smiOID e l'implementazione allocata le risorse per il descrittore, l'applicazione deve chiamare SnmpFreeDescriptor. Ciò consente all'implementazione di liberare la memoria. Se l'applicazione ha allocato le risorse, deve liberare la memoria usando una funzione appropriata, come indicato in precedenza.
Per altre informazioni, vedere Allocazione di oggetti di memoria WinSNMP.