Fonction midl_user_free

La fonction midl_user_free doit être fournie par les développeurs RPC. Il libère la mémoire allouée par midl_user_allocate pour les stubs RPC et les routines de bibliothèque. Votre fonction midl_user_free doit correspondre au prototype suivant :

void __RPC_USER midl_user_free(void * pBuffer);

Le paramètre pBuffer spécifie un pointeur vers la mémoire à libérer. L’application cliente et l’application serveur doivent implémenter la fonction midl_user_free , sauf si vous effectuez une compilation en mode de compatibilité OSF (/osf). La fonction midl_user_free doit pouvoir libérer tout le stockage alloué par midl_user_allocate.

Les applications et les stubs appellent midl_user_free lors du traitement des objets alloués :

  • L’application serveur doit appeler midl_user_free pour libérer la mémoire allouée par l’application, par exemple lors de la suppression d’un nœud de données alloué dynamiquement.
  • Le stub du serveur appelle midl_user_free pour libérer la mémoire sur le serveur après avoir marshalé tous les arguments [out], [in],[out] et la valeur de retour de la fonction.

Par exemple, l’exemple de programme WINDOWS RPC qui affiche « Hello, world » implémente midl_user_free en termes de la fonction C libre :

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

Notes

Si le package RpcSs est activé (par exemple, à la suite de l’utilisation de l’attribut [ enable_allocate], votre programme serveur doit utiliser RpcSmFree pour libérer de la mémoire. Pour plus d’informations, consultez Package de gestion de la mémoire RpcSs.