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
RPC_S_OK
A chamada foi concluída com êxito.
RPC_S_INVALID_ASYNC_HANDLE
O identificador de chamada assíncrona não é válido.
RPC_S_ASYNC_CALL_PENDING
A chamada ainda não foi concluída.
RPC_S_CALL_CANCELLED
A chamada foi cancelada.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

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

Confira também

RPC assíncrono

Tratamento de erro

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel