Compartir a través de


Liberar descriptores winSNMP

El entorno de programación winSNMP asigna la desasignación de recursos de descriptor a la implementación de WinSNMP o a la aplicación WinSNMP, en función de qué componente asigne la memoria para el descriptor.

Para liberar los recursos de un smiOID o un descriptor smiOCTETS , se aplican las reglas siguientes:

  • Para parámetros de entrada

    Dado que la aplicación WinSNMP asigna la memoria para los objetos de entrada con longitudes variables, la aplicación debe liberar esa memoria mediante una función adecuada. Por ejemplo, si la aplicación asignó los recursos con una llamada a la función GlobalAlloc , debe usar la función GlobalFree para desasignar los recursos. Si la aplicación asignó los recursos con una llamada a la función HeapAlloc , debe llamar a la función HeapFree .

  • Para parámetros de salida

    Una llamada a cualquiera de las funciones siguientes da como resultado la asignación de memoria para un smiOID o un descriptor smiOCTETS : SnmpGetVb, SnmpEncodeMsg, SnmpOidCopy, SnmpContextToStr y SnmpStrToOid.

    Dado que la implementación asigna la memoria para estos objetos de salida, la aplicación debe llamar a la función SnmpFreeDescriptor para desasignar los recursos. Esta función permite que la implementación libere la memoria asignada para el miembro ptr de estas estructuras.

Para liberar los recursos de una estructura smiVALUE , una aplicación WinSNMP debe comprobar el miembro de sintaxis de una estructura smiVALUE para evaluar correctamente el miembro de valor de la estructura. Si el miembro de sintaxis indica que el miembro de valor es un smiOCTETS o un descriptor smiOID , y la implementación asignó los recursos para el descriptor, la aplicación debe llamar a SnmpFreeDescriptor. Esto permite que la implementación libere la memoria. Si la aplicación asignó los recursos, debe liberar la memoria mediante una función adecuada, como se indicó anteriormente.

Para obtener más información, vea Asignar objetos de memoria winSNMP.