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 |
---|---|
|
La chiamata è stata completata correttamente. |
|
L'handle di chiamata asincrona non è valido. |
|
La chiamata non è ancora stata completata. |
|
La chiamata è stata annullata. |
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 |