Funzione midl_user_free
La funzione midl_user_free deve essere fornita dagli sviluppatori RPC. Libera la memoria allocata da midl_user_allocate per gli stub RPC e le routine della libreria. La funzione midl_user_free deve corrispondere al prototipo seguente:
void __RPC_USER midl_user_free(void * pBuffer);
Il parametro pBuffer specifica un puntatore alla memoria da liberare. Sia l'applicazione client che l'applicazione server devono implementare la funzione midl_user_free , a meno che non si stia compilando in modalità OSF-compatibility (/osf). La funzione midl_user_free deve essere in grado di liberare tutte le risorse di archiviazione allocate da midl_user_allocate.
Le applicazioni e gli stub chiamano midl_user_free quando si gestiscono oggetti allocati:
- L'applicazione server deve chiamare midl_user_free per liberare memoria allocata dall'applicazione, ad esempio quando si elimina un nodo di dati allocato in modo dinamico.
- Lo stub del server chiama midl_user_free per rilasciare memoria nel server dopo il marshalling di tutti gli argomenti [out], [in],[out] e il valore restituito dalla funzione.
Ad esempio, il programma di esempio RPC Windows che visualizza "Hello, world" implementa midl_user_free in termini di funzione C gratuita:
void __RPC_USER midl_user_free(void __RPC_FAR * p)
{
free(p);
}
Nota
Se il pacchetto RpcSs è abilitato (ad esempio, come risultato dell'uso dell'attributo [ enable_allocate]), il programma server deve usare RpcSmFree per liberare memoria. Per altre informazioni, vedere RpcSs Memory Management Package.