A função midl_user_free

A função midl_user_free deve ser fornecida por desenvolvedores RPC. Ele libera a memória alocada por midl_user_allocate para os stubs de RPC e rotinas de biblioteca. Sua função midl_user_free deve corresponder ao seguinte protótipo:

void __RPC_USER midl_user_free(void * pBuffer);

O parâmetro pBuffer especifica um ponteiro para a memória a ser liberada. O aplicativo cliente e o aplicativo de servidor devem implementar a função midl_user_free , a menos que você esteja compilando no modo de compatibilidade com OSF (/osf). A função midl_user_free deve ser capaz de liberar todo o armazenamento alocado por midl_user_allocate.

Aplicativos e stubs chamam midl_user_free ao lidar com objetos alocados:

  • O aplicativo de servidor deve chamar midl_user_free para liberar memória alocada pelo aplicativo, como ao excluir um nó de dados alocado dinamicamente.
  • O stub do servidor chama midl_user_free para liberar memória no servidor depois de realizar marshaling de todos os argumentos [out], [in],[out] argumentos e o valor retornado da função.

Por exemplo, o programa de exemplo RPC Windows que exibe "Olá, mundo" implementa midl_user_free em termos da função C livre:

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

Observação

Se o pacote RpcSs estiver habilitado (por exemplo, como resultado do uso do atributo [ enable_allocate]), seu programa de servidor deverá usar RpcSmFree para liberar memória. Para obter mais informações, consulte Pacote de Gerenciamento de Memória RpcSs.