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 biblioteca y códigos auxiliares RPC. 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 de compatibilidad con OSF (/osf). La función midl_user_free debe poder liberar todo el almacenamiento asignado por midl_user_allocate.

Las aplicaciones y los 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 a 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 RpcSs Memory Management Package.