Partager via


RpcAsyncCompleteCall, fonction (rpcasync.h)

Le client et le serveur appellent la fonction RpcAsyncCompleteCall pour effectuer un appel de procédure distante asynchrone.

Syntaxe

RPC_STATUS RpcAsyncCompleteCall(
  PRPC_ASYNC_STATE pAsync,
  void             *Reply
);

Paramètres

pAsync

Pointeur vers la structure RPC_ASYNC_STATE qui contient des informations d’appel asynchrones.

Reply

Pointeur vers une mémoire tampon contenant la valeur de retour de l’appel de procédure distante.

Valeur retournée

En plus des valeurs suivantes, RpcAsyncCompleteCall peut également retourner toute erreur RPC générale ou spécifique à l’application.

Valeur Signification
RPC_S_OK
L’appel s’est terminé avec succès.
RPC_S_INVALID_ASYNC_HANDLE
Le handle d’appel asynchrone n’est pas valide.
RPC_S_ASYNC_CALL_PENDING
L’appel n’est pas encore terminé.
RPC_S_CALL_CANCELLED
L’appel a été annulé.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

Notes

Termine l’appel RPC asynchrone. Le client et le serveur appellent cette fonction.

Client : La réponse pointe vers une mémoire tampon qui recevra la réponse. Si le client appelle cette fonction avant l’arrivée de la réponse, l’appel retourne RPC_S_ASYNC_CALL_PENDING. La mémoire tampon doit être valide et doit être suffisamment grande pour recevoir la valeur de retour. Si cet appel réussit, les paramètres [out] et [in,out] sont valides. Si l’appel ne retourne pas RPC_S_ASYNC_CALL_PENDING, cet appel RpcAsyncCompleteCall est final pour l’appel RPC. Après cet appel de fonction, quelle que soit la réussite ou l’échec, toutes les ressources allouées par le runtime RPC sont libérées. Les appels suivants aux fonctions RpcAsyncCompleteCall ou RpcAsyncCancelCall ont des résultats non définis jusqu’à ce qu’un nouvel appel soit lancé sur la structure RPC_ASYNC_STATE.

Serveur : La réponse pointe vers une mémoire tampon qui contient la valeur de retour qui doit être envoyée au client. Vous devez uniquement définir une mémoire tampon valide pour Reply si votre fonction est déclarée avec un type de retour. Avant d’appeler RpcAsyncCompleteCall , les paramètres [out] et [in,out] doivent être mis à jour. Ces paramètres et le handle asynchrone ne doivent pas être touchés après le retour de l’appel à RpcAsyncCompleteCall . L’appel de RpcAsyncCompleteCall sur le serveur est final. Si l’appel de fonction RpcAsyncCompleteCall échoue, le runtime RPC libère les paramètres.

Tous les paramètres [out], y compris les paramètres [comm_status] et [fault_status], ne sont valides que si la valeur de retour de RpcAsyncCompleteCall est RPC_S_OK.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête rpcasync.h (inclure Rpc.h)
Bibliothèque Rpcrt4.lib
DLL Rpcrt4.dll

Voir aussi

RPC asynchrone

Gestion des erreurs

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel