Função RpcAsyncCompleteCall (rpcasync.h)
O cliente e o servidor chamam a função RpcAsyncCompleteCall para concluir uma chamada de procedimento remoto assíncrono.
Sintaxe
RPC_STATUS RpcAsyncCompleteCall(
PRPC_ASYNC_STATE pAsync,
void *Reply
);
Parâmetros
pAsync
Ponteiro para a estrutura RPC_ASYNC_STATE que contém informações de chamada assíncronas.
Reply
Ponteiro para um buffer que contém o valor retornado da chamada de procedimento remoto.
Valor retornado
Além dos valores a seguir, RpcAsyncCompleteCall também pode retornar qualquer erro geral de RPC ou específico do aplicativo.
Valor | Significado |
---|---|
|
A chamada foi concluída com êxito. |
|
O identificador de chamada assíncrona não é válido. |
|
A chamada ainda não foi concluída. |
|
A chamada foi cancelada. |
Comentários
Conclui a chamada RPC assíncrona. O cliente e o servidor chamam essa função.
Cliente: a resposta aponta para um buffer que receberá a resposta. Se o cliente chamar essa função antes da resposta chegar, a chamada retornará RPC_S_ASYNC_CALL_PENDING. O buffer deve ser válido e deve ser grande o suficiente para receber o valor retornado. Se essa chamada for bem-sucedida, os parâmetros [out] e [in,out] serão válidos. Se a chamada não retornar RPC_S_ASYNC_CALL_PENDING, essa invocação RpcAsyncCompleteCall será final para a chamada RPC. Após essa chamada de função, independentemente de êxito ou falha, todos os recursos alocados pelo runtime RPC são liberados. As chamadas subsequentes para as funções RpcAsyncCompleteCall ou RpcAsyncCancelCall têm resultados indefinidos até que uma nova chamada na estrutura RPC_ASYNC_STATE seja iniciada.
Servidor: a resposta aponta para um buffer que contém o valor retornado que precisa ser enviado ao cliente. Você só precisará definir um buffer válido para Responder se sua função for declarada com um tipo de retorno. Antes que uma chamada para RpcAsyncCompleteCall seja feita, os parâmetros [out] e [in,out] devem ser atualizados. Esses parâmetros e o identificador assíncrono não devem ser tocados após o retorno da chamada para RpcAsyncCompleteCall . A invocação de RpcAsyncCompleteCall no servidor é final. Se a chamada da função RpcAsyncCompleteCall falhar, o runtime do RPC liberará os parâmetros.
Todos os parâmetros [out] , incluindo parâmetros [comm_status] e [fault_status] , só serão válidos se o valor retornado de RpcAsyncCompleteCall for RPC_S_OK.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | rpcasync.h (inclua Rpc.h) |
Biblioteca | Rpcrt4.lib |
DLL | Rpcrt4.dll |