Поделиться через


Освобождение дескрипторов WinSNMP

Среда программирования WinSNMP назначает освобождение ресурсов дескриптора реализации WinSNMP или приложению WinSNMP в зависимости от того, какой компонент выделяет память для дескриптора.

Чтобы освободить ресурсы для дескриптора smiOID или smiOCTETS , применяются следующие правила:

  • Для входных параметров

    Так как приложение WinSNMP выделяет память для входных объектов с переменной длиной, приложение должно освободить память с помощью соответствующей функции. Например, если приложение выделило ресурсы с помощью вызова функции GlobalAlloc , оно должно использовать функцию GlobalFree для освобождения ресурсов. Если приложение выделило ресурсы с помощью вызова функции HeapAlloc , оно должно вызвать функцию HeapFree .

  • Для выходных параметров

    Вызов любой из следующих функций приводит к тому, что реализация выделяет память для дескриптора smiOID или smiOCTETS : SnmpGetVb, SnmpEncodeMsg, SnmpOidCopy, SnmpContextToStr и SnmpStrToOid.

    Так как реализация выделяет память для этих выходных объектов, приложение должно вызвать функцию SnmpFreeDescriptor , чтобы освободить ресурсы. Эта функция позволяет реализации освободить память, выделенную для элемента ptr этих структур.

Чтобы освободить ресурсы для структуры smiVALUE, приложение WinSNMP должно проверка синтаксический элемент структуры smiVALUE, чтобы правильно оценить элемент value структуры. Если синтаксический элемент указывает, что элемент значения является дескриптором smiOCTETS или smiOID , а реализация выделила ресурсы для дескриптора, приложение должно вызвать SnmpFreeDescriptor. Это позволяет реализации освободить память. Если приложение выделило ресурсы, оно должно освободить память с помощью соответствующей функции, как указано ранее.

Дополнительные сведения см. в разделе Выделение объектов памяти WinSNMP.