Compartir a través de


Función RpcAsyncCompleteCall (rpcasync.h)

El cliente y el servidor llaman a la función RpcAsyncCompleteCall para completar una llamada de procedimiento remoto asincrónica.

Sintaxis

RPC_STATUS RpcAsyncCompleteCall(
  PRPC_ASYNC_STATE pAsync,
  void             *Reply
);

Parámetros

pAsync

Puntero a la estructura RPC_ASYNC_STATE que contiene información de llamada asincrónica.

Reply

Puntero a un búfer que contiene el valor devuelto de la llamada a procedimiento remoto.

Valor devuelto

Además de los valores siguientes, RpcAsyncCompleteCall también puede devolver cualquier error general de RPC o específico de la aplicación.

Valor Significado
RPC_S_OK
La llamada se completó correctamente.
RPC_S_INVALID_ASYNC_HANDLE
El identificador de llamada asincrónica no es válido.
RPC_S_ASYNC_CALL_PENDING
La llamada aún no se ha completado.
RPC_S_CALL_CANCELLED
Se canceló la llamada.
 
Nota Para obtener una lista de códigos de error válidos, vea Rpc Return Values.
 

Comentarios

Completa la llamada RPC asincrónica. Tanto el cliente como el servidor llaman a esta función.

Cliente: la respuesta apunta a un búfer que recibirá la respuesta. Si el cliente llama a esta función antes de que haya llegado la respuesta, la llamada devuelve RPC_S_ASYNC_CALL_PENDING. El búfer debe ser válido y debe ser lo suficientemente grande como para recibir el valor devuelto. Si esta llamada se realiza correctamente, los parámetros [out] y [in,out] son válidos. Si la llamada no devuelve RPC_S_ASYNC_CALL_PENDING, esta invocación RpcAsyncCompleteCall es final para la llamada RPC. Después de esta llamada de función, independientemente del éxito o error, se liberan todos los recursos asignados por el tiempo de ejecución de RPC. Las llamadas posteriores a las funciones RpcAsyncCompleteCall o RpcAsyncCancelCall tienen resultados indefinidos hasta que se inicia una nueva llamada en la estructura de RPC_ASYNC_STATE.

Servidor: la respuesta apunta a un búfer que contiene el valor devuelto que se debe enviar al cliente. Solo tiene que establecer un búfer válido para Reply si la función se declara con un tipo de valor devuelto. Antes de realizar una llamada a RpcAsyncCompleteCall, se deben actualizar los parámetros [out] y [in,out]. Estos parámetros y el identificador asincrónico no deben tocarse después de que se devuelva la llamada a RpcAsyncCompleteCall . La invocación de RpcAsyncCompleteCall en el servidor es final. Si se produce un error en la llamada de función RpcAsyncCompleteCall , el tiempo de ejecución de RPC libera los parámetros.

Los parámetros [out], incluidos [comm_status] y [fault_status] parámetros, solo son válidos si el valor devuelto de RpcAsyncCompleteCall es RPC_S_OK.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado rpcasync.h (include Rpc.h)
Library Rpcrt4.lib
Archivo DLL Rpcrt4.dll

Consulte también

RPC asincrónico

Tratamiento de errores

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel