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

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

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

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

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

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

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

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

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

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