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 |
---|---|
|
Der Aufruf wurde erfolgreich abgeschlossen. |
|
Das asynchrone Aufrufhandle ist ungültig. |
|
Der Anruf ist noch nicht abgeschlossen. |
|
Der Anruf wurde abgebrochen. |
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 |