Compartir a través de


Función midl_user_free

Los desarrolladores de RPC deben proporcionar la función midl_user_free. Libera memoria asignada por midl_user_allocate para las rutinas de código auxiliar rpc y de biblioteca. La función midl_user_free debe coincidir con el siguiente prototipo:

void __RPC_USER midl_user_free(void * pBuffer);

El parámetro pBuffer especifica un puntero a la memoria que se va a liberar. Tanto la aplicación cliente como la aplicación de servidor deben implementar la función midl_user_free a menos que esté compilando en modo OSF-compatibility (/osf). La función midl_user_free debe poder liberar todo el almacenamiento asignado por midl_user_allocate.

Las aplicaciones y códigos auxiliares llaman a midl_user_free cuando se trabaja con objetos asignados:

  • La aplicación de servidor debe llamar a midl_user_free para liberar memoria asignada por la aplicación, como al eliminar un nodo asignado dinámicamente de datos.
  • El código auxiliar del servidor llama midl_user_free para liberar memoria en el servidor después de serializar todos los argumentos [out], [in],[out] y el valor devuelto de la función.

Por ejemplo, el programa de ejemplo RPC de Windows que muestra "Hello, world" implementa midl_user_free en términos de la función C libre:

void __RPC_USER midl_user_free(void __RPC_FAR * p)
{
    free(p);
}

Nota

Si el paquete RpcSs está habilitado (por ejemplo, como resultado del uso del atributo [ enable_allocate] ), el programa de servidor debe usar RpcSmFree para liberar memoria. Para obtener más información, vea paquete de administración de memoria rpcSs.