Fungsi RpcAsyncCompleteCall (rpcasync.h)

Klien dan server memanggil fungsi RpcAsyncCompleteCall untuk menyelesaikan panggilan prosedur jarak jauh asinkron.

Sintaks

RPC_STATUS RpcAsyncCompleteCall(
  PRPC_ASYNC_STATE pAsync,
  void             *Reply
);

Parameter

pAsync

Arahkan ke struktur RPC_ASYNC_STATE yang berisi informasi panggilan asinkron.

Reply

Penunjuk ke buffer yang berisi nilai pengembalian panggilan prosedur jarak jauh.

Menampilkan nilai

Selain nilai berikut, RpcAsyncCompleteCall juga dapat mengembalikan RPC umum atau kesalahan khusus aplikasi.

Nilai Makna
RPC_S_OK
Panggilan berhasil diselesaikan.
RPC_S_INVALID_ASYNC_HANDLE
Handel panggilan asinkron tidak valid.
RPC_S_ASYNC_CALL_PENDING
Panggilan belum selesai.
RPC_S_CALL_CANCELLED
Panggilan dibatalkan.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Menyelesaikan panggilan RPC asinkron. Klien dan server memanggil fungsi ini.

Klien: Balasan menunjuk ke buffer yang akan menerima balasan. Jika klien memanggil fungsi ini sebelum balasan tiba, panggilan akan mengembalikan RPC_S_ASYNC_CALL_PENDING. Buffer harus valid dan harus cukup besar untuk menerima nilai pengembalian. Jika panggilan ini berhasil, parameter [out] dan [in,out] valid. Jika panggilan tidak mengembalikan RPC_S_ASYNC_CALL_PENDING, pemanggilan RpcAsyncCompleteCall ini adalah final untuk panggilan RPC. Setelah panggilan fungsi ini, terlepas dari keberhasilan atau kegagalan, semua sumber daya yang dialokasikan oleh runtime RPC dibebaskan. Panggilan berikutnya ke fungsi RpcAsyncCompleteCall atau RpcAsyncCancelCall memiliki hasil yang tidak ditentukan sampai panggilan baru pada struktur RPC_ASYNC_STATE dimulai.

Server: Balasan menunjuk ke buffer yang berisi nilai pengembalian yang perlu dikirim ke klien. Anda hanya perlu mengatur buffer yang valid untuk Balasan jika fungsi Anda dinyatakan dengan jenis pengembalian. Sebelum panggilan ke RpcAsyncCompleteCall dilakukan, parameter [out] dan [in,out] harus diperbarui. Parameter ini, dan handel asinkron, tidak boleh disentuh setelah panggilan ke RpcAsyncCompleteCall kembali. Pemanggilan RpcAsyncCompleteCall pada server sudah final. Jika panggilan fungsi RpcAsyncCompleteCall gagal, runtime RPC membebaskan parameter.

Parameter [out] apa pun, termasuk parameter [comm_status] dan [fault_status] , hanya valid jika nilai pengembalian RpcAsyncCompleteCall RPC_S_OK.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header rpcasync.h (termasuk Rpc.h)
Pustaka Rpcrt4.lib
DLL Rpcrt4.dll

Lihat juga

RPC asinkron

Penanganan Kesalahan

RPC_ASYNC_STATE

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel