释放 WinSNMP 描述符

WinSNMP 编程环境会将描述符资源的释放分配给 WinSNMP 实现或 WinSNMP 应用程序,具体取决于为描述符分配内存的组件。

若要释放 smiOIDsmiOCTETS 描述符的资源,请遵循以下规则:

  • 对于输入参数

    由于 WinSNMP 应用程序为具有可变长度的输入对象分配内存,因此应用程序必须使用适当的函数释放该内存。 例如,如果应用程序使用对 GlobalAlloc 函数的调用分配了资源,则应使用 GlobalFree 函数来释放资源。 如果应用程序使用对 HeapAlloc 函数的调用分配了资源,则它应调用 HeapFree 函数。

  • 用于输出参数

    调用以下任意函数会导致实现为 smiOIDsmiOCTETS 描述符分配内存: SnmpGetVbSnmpEncodeMsgSnmpOidCopySnmpContextToStrSnmpStrToOid

    由于实现为这些输出对象分配内存,因此应用程序必须调用 SnmpFreeDescriptor 函数以释放资源。 此函数使实现能够释放为这些结构的 ptr 成员分配的内存。

为了释放 smiVALUE结构的资源,WinSNMP 应用程序必须检查 smiVALUE结构的 语法 成员,以正确计算结构的 成员。 如果 语法 成员指示 Value 成员是 smiOCTETSsmiOID 说明符,并且实现为描述符分配了资源,则应用程序必须调用 SnmpFreeDescriptor。 这使实现能够释放内存。 如果应用程序分配了资源,则必须使用适当的函数释放内存,如前文所述。

有关详细信息,请参阅 分配 WinSNMP 内存对象