Funzione RpcAsyncCompleteCall (rpcasync.h)

Il client e il server chiamano la funzione RpcAsyncCompleteCall per completare una chiamata asincrona alla procedura remota.

Sintassi

RPC_STATUS RpcAsyncCompleteCall(
  PRPC_ASYNC_STATE pAsync,
  void             *Reply
);

Parametri

pAsync

Puntatore alla struttura RPC_ASYNC_STATE che contiene informazioni sulle chiamate asincrone.

Reply

Puntatore a un buffer contenente il valore restituito della chiamata di routine remota.

Valore restituito

Oltre ai valori seguenti, RpcAsyncCompleteCall può restituire anche qualsiasi errore RPC o specifico dell'applicazione generale.

Valore Significato
RPC_S_OK
La chiamata è stata completata correttamente.
RPC_S_INVALID_ASYNC_HANDLE
L'handle di chiamata asincrona non è valido.
RPC_S_ASYNC_CALL_PENDING
La chiamata non è ancora stata completata.
RPC_S_CALL_CANCELLED
La chiamata è stata annullata.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

Completa la chiamata RPC asincrona. Sia il client che il server chiamano questa funzione.

Client: risposta punta a un buffer che riceverà la risposta. Se il client chiama questa funzione prima dell'arrivo della risposta, la chiamata restituisce RPC_S_ASYNC_CALL_PENDING. Il buffer deve essere valido e deve essere sufficientemente grande da ricevere il valore restituito. Se la chiamata ha esito positivo, i parametri [out] e [in,out] sono validi. Se la chiamata non restituisce RPC_S_ASYNC_CALL_PENDING, questa chiamata RpcAsyncCompleteCall è finale per la chiamata RPC. Dopo questa chiamata di funzione, indipendentemente dall'esito positivo o negativo, tutte le risorse allocate dal runtime RPC vengono liberate. Le chiamate successive alle funzioni RpcAsyncCompleteCall o RpcAsyncCancelCall hanno risultati non definiti fino a quando non viene avviata una nuova chiamata sulla struttura RPC_ASYNC_STATE.

Server: risposta punta a un buffer che contiene il valore restituito che deve essere inviato al client. È necessario impostare un buffer valido per Reply solo se la funzione viene dichiarata con un tipo restituito. Prima di eseguire una chiamata a RpcAsyncCompleteCall, è necessario aggiornare i parametri [out] e [in,out]. Questi parametri e l'handle asincrono non devono essere toccati dopo la restituzione della chiamata a RpcAsyncCompleteCall . La chiamata di RpcAsyncCompleteCall nel server è finale. Se la chiamata di funzione RpcAsyncCompleteCall ha esito negativo, il runtime RPC libera i parametri.

Tutti i parametri [out] , inclusi [comm_status] e [fault_status] sono validi solo se il valore restituito di RpcAsyncCompleteCall è RPC_S_OK.

Requisiti

   
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione rpcasync.h (include Rpc.h)
Libreria Rpcrt4.lib
DLL Rpcrt4.dll

Vedi anche

RPC asincrona

Gestione degli errori

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel