Fonction midl_user_allocate
La fonction midl_user_allocate est une procédure qui doit être fournie par les développeurs d’applications RPC. Il alloue de la mémoire pour les stubs RPC et les routines de bibliothèque. Votre fonction midl_user_allocate doit correspondre au prototype suivant :
void __RPC_FAR * __RPC_USER midl_user_allocate (size_t cBytes);
Le paramètre cBytes spécifie le nombre d’octets à allouer. Les applications clientes et les applications serveur doivent implémenter la fonction midl_user_allocate , sauf si vous compilez en mode de compatibilité OSF (/osf). Les applications et les stubs générés appellent des midl_user_allocate directement ou indirectement pour gérer les objets alloués. Par exemple :
- Les applications clientes et serveurs appellent midl_user_allocate pour allouer de la mémoire à l’application, par exemple lors de la création d’un nœud dans une arborescence ou une liste liée.
- Le stub du serveur appelle midl_user_allocate lors du démarchant des données dans l’espace d’adressage du serveur.
- Le stub client appelle midl_user_allocate lors du démarchant des données du serveur référencé par un pointeur [out]. Notez que pour les pointeurs [in], [out] et [unique], le stub client appelle midl_user_allocate uniquement si la valeur du pointeur [unique] était null lors de l’entrée et passe à une valeur non null pendant l’appel. Si le pointeur [unique] n’était pas null lors de l’entrée, le stub client écrit les données associées dans la mémoire existante.
Si midl_user_allocate ne parvient pas à allouer de la mémoire, elle doit retourner un pointeur Null.
La fonction midl_user_allocate doit retourner un pointeur aligné sur 8 octets.
Par exemple, les exemples de programmes fournis avec le Kit de développement logiciel (SDK) de plateforme implémentent midl_user_allocate en termes de malloc de la fonction C :
void __RPC_FAR * __RPC_USER midl_user_allocate(size_t cBytes)
{
return((void __RPC_FAR *) malloc(cBytes));
}
Notes
Si le package RpcSs est activé (par exemple, en raison de l’utilisation de l’attribut [ enable_allocate], utilisez RpcSmAllocate pour allouer de la mémoire côté serveur. Pour plus d’informations sur [enable_allocate], consultez Référence MIDL.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour