Freigeben über


RpcAsyncCompleteCall-Funktion (rpcasync.h)

Der Client und der Server rufen die RpcAsyncCompleteCall-Funktion auf, um einen asynchronen Remoteprozeduraufruf abzuschließen.

Syntax

RPC_STATUS RpcAsyncCompleteCall(
  PRPC_ASYNC_STATE pAsync,
  void             *Reply
);

Parameter

pAsync

Zeiger auf die RPC_ASYNC_STATE Struktur, die asynchrone Aufrufinformationen enthält.

Reply

Zeiger auf einen Puffer, der den Rückgabewert des Remoteprozeduraufrufs enthält.

Rückgabewert

Zusätzlich zu den folgenden Werten kann RpcAsyncCompleteCall auch alle allgemeinen RPC- oder anwendungsspezifischen Fehler zurückgeben.

Wert Bedeutung
RPC_S_OK
Der Aufruf wurde erfolgreich abgeschlossen.
RPC_S_INVALID_ASYNC_HANDLE
Das asynchrone Aufrufhandle ist ungültig.
RPC_S_ASYNC_CALL_PENDING
Der Anruf ist noch nicht abgeschlossen.
RPC_S_CALL_CANCELLED
Der Anruf wurde abgebrochen.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Schließt den asynchronen RPC-Aufruf ab. Diese Funktion wird sowohl vom Client als auch vom Server aufgerufen.

Client: Antwort verweist auf einen Puffer, der die Antwort empfängt. Wenn der Client diese Funktion aufruft, bevor die Antwort eingetroffen ist, gibt der Aufruf RPC_S_ASYNC_CALL_PENDING zurück. Der Puffer muss gültig sein, und er muss groß genug sein, um den Rückgabewert zu empfangen. Wenn dieser Aufruf erfolgreich ist, sind die Parameter [out] und [in,out] gültig. Wenn der Aufruf nicht RPC_S_ASYNC_CALL_PENDING zurückgibt, ist dieser RpcAsyncCompleteCall-Aufruf endgültig für den RPC-Aufruf. Nach dem Aufruf dieser Funktion werden unabhängig von Erfolg oder Fehler alle Ressourcen freigegeben, die der RPC-Runtime zugeordnet sind. Nachfolgende Aufrufe der Funktionen RpcAsyncCompleteCall oder RpcAsyncCancelCall haben nicht definierte Ergebnisse, bis ein neuer Aufruf der RPC_ASYNC_STATE-Struktur initiiert wird.

Server: Die Antwort verweist auf einen Puffer, der den Rückgabewert enthält, der an den Client gesendet werden muss. Sie müssen nur einen gültigen Puffer für Reply festlegen, wenn Ihre Funktion mit einem Rückgabetyp deklariert ist. Bevor ein Aufruf von RpcAsyncCompleteCall erfolgt, müssen die Parameter [out] und [in,out] aktualisiert werden. Diese Parameter und das asynchrone Handle sollten nicht berührt werden, nachdem der Aufruf von RpcAsyncCompleteCall zurückgegeben wurde. Der Aufruf von RpcAsyncCompleteCall auf dem Server ist endgültig. Wenn der RpcAsyncCompleteCall-Funktionsaufruf fehlschlägt, gibt die RPC-Runtime die Parameter frei.

Alle [out]- Parameter, einschließlich [comm_status] und [fault_status], sind nur gültig, wenn der Rückgabewert von RpcAsyncCompleteCall RPC_S_OK ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile rpcasync.h (rpc.h einschließen)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

Asynchroner RPC

Fehlerbehandlung

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel