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.