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.