RpcAsyncCompleteCall 函式 (rpcasync.h)
用戶端和伺服器會呼叫 RpcAsyncCompleteCall 函式,以完成非同步遠端程序呼叫。
語法
RPC_STATUS RpcAsyncCompleteCall(
PRPC_ASYNC_STATE pAsync,
void *Reply
);
參數
pAsync
包含非同步呼叫資訊的 RPC_ASYNC_STATE 結構的指標。
Reply
緩衝區的指標,其中包含遠端程序呼叫的傳回值。
傳回值
除了下列值之外, RpcAsyncCompleteCall 也可以傳回任何一般 RPC 或應用程式特定的錯誤。
值 | 意義 |
---|---|
|
呼叫已順利完成。 |
|
非同步呼叫控制碼無效。 |
|
呼叫尚未完成。 |
|
呼叫已取消。 |
備註
完成非同步 RPC 呼叫。 用戶端和伺服器都會呼叫此函式。
用戶端: 回復 會指向將接收回複的緩衝區。 如果用戶端在回復到達之前呼叫此函式,則呼叫會傳回RPC_S_ASYNC_CALL_PENDING。 緩衝區必須有效,而且必須夠大,才能接收傳回值。 如果此呼叫成功, [out] 和 [in,out] 參數是有效的。 如果呼叫未傳回RPC_S_ASYNC_CALL_PENDING,此 RpcAsyncCompleteCall 調用是 RPC 呼叫的最終呼叫。 在呼叫此函式之後,不論成功或失敗,RPC 執行時間配置的所有資源都會釋出。 後續對 RpcAsyncCompleteCall 或 RpcAsyncCancelCall 函式的呼叫具有未定義的結果,直到起始RPC_ASYNC_STATE結構的新呼叫為止。
伺服器: 回復 指向緩衝區,其中包含需要傳送給用戶端的傳回值。 如果您的函式是以傳回類型宣告,您只需要為 Reply 設定有效的緩衝區。 呼叫 RpcAsyncCompleteCall 之前,必須更新 [out] 和 [in,out] 參數。 呼叫 RpcAsyncCompleteCall 之後,不應觸碰這些參數和非同步控制碼。 伺服器上的 RpcAsyncCompleteCall 叫用是最終的。 如果 RpcAsyncCompleteCall 函式呼叫失敗,RPC 執行時間會釋放參數。
任何 [ out] 參數,包括 [comm_status] 和 [fault_status] 參數,只有在 RpcAsyncCompleteCall 的傳回值RPC_S_OK時才有效。
需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | rpcasync.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |