Partager via


Fonction midl_user_free

La fonction midl_user_free doit être fournie par les développeurs RPC. Elle libère la mémoire allouée par midl_user_allocate pour les routines de stubs et de bibliothèque RPC. 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 compilez en mode de compatibilité OSF (/osf). La fonction midl_user_free doit être en mesure de 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 de la mémoire allouée par l’application, par exemple lors de la suppression d’un nœud alloué dynamiquement de données.
  • Le stub du serveur appelle midl_user_free pour libérer de la mémoire sur le serveur après avoir marshalé tous les arguments [out], [in],[out] arguments et la valeur de retour de la fonction.

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

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

Note

Si le package RpcSs est activé (par exemple, en raison 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.