Freigeben von WinSNMP-Deskriptoren

Die WinSNMP-Programmierumgebung weist die Deallocation von Deskriptorressourcen der WinSNMP-Implementierung oder der WinSNMP-Anwendung zu, je nachdem, welche Komponente den Speicher für den Deskriptor zuordnet.

Um die Ressourcen für ein smiOID oder einen smiOCTETS-Deskriptor freizugeben, gelten die folgenden Regeln:

  • Für Eingabeparameter

    Da die WinSNMP-Anwendung den Speicher für Eingabeobjekte mit variablen Längen zuweist, muss die Anwendung diesen Speicher mithilfe einer geeigneten Funktion freigeben. Wenn die Anwendung beispielsweise die Ressourcen mit einem Aufruf der GlobalAlloc-Funktion zugewiesen hat, sollte die Funktion GlobalFree verwendet werden, um die Ressourcen zuzuordnen. Wenn die Anwendung die Ressourcen mit einem Aufruf der HeapAlloc-Funktion zugewiesen hat, sollte die HeapFree-Funktion aufgerufen werden.

  • Für Ausgabeparameter

    Ein Aufruf einer der folgenden Funktionen führt dazu, dass der Implementierungsspeicher für ein smiOID oder ein smiOCTETS-Deskriptor zugewiesen wird: SnmpGetVb, SnmpEncodeMsg, SnmpOidCopy, SnmpContextToStr und SnmpStrToOid.

    Da die Implementierung den Speicher für diese Ausgabeobjekte zuweist, muss die Anwendung die SnmpFreeDescriptor-Funktion aufrufen, um die Ressourcen zu behandeln. Diese Funktion ermöglicht die Implementierung, den für das ptr-Element dieser Strukturen zugewiesenen Speicher freizugeben.

Um die Ressourcen für eine smiVALUE-Struktur freizugeben, muss eine WinSNMP-Anwendung das Syntaxelement einer smiVALUE-Struktur überprüfen, um das Wertelement der Struktur korrekt auszuwerten. Wenn das Syntaxelement angibt, dass das Wertelement ein smiOCTETS oder ein smiOID-Deskriptor ist und die Implementierung die Ressourcen für den Deskriptor zugewiesen hat, muss die Anwendung SnmpFreeDescriptor aufrufen. Dies ermöglicht die Implementierung, den Arbeitsspeicher freizugeben. Wenn die Anwendung die Ressourcen zugewiesen hat, muss sie den Arbeitsspeicher mithilfe einer geeigneten Funktion freizugeben, wie zuvor angegeben.

Weitere Informationen finden Sie unter "Allocating WinSNMP Memory Objects".