Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi RpcBindingBind menghubungi server RPC dan mengikatnya.
Sintaks
RPC_STATUS RpcBindingBind(
[in, optional] PRPC_ASYNC_STATE pAsync,
[in] RPC_BINDING_HANDLE Binding,
[in] RPC_IF_HANDLE IfSpec
);
Parameter
[in, optional] pAsync
Arahkan ke struktur RPC_ASYNC_STATE yang berisi informasi panggilan asinkron. Informasi status ini berisi metode penyelesaian yang digunakan untuk memberi sinyal ketika operasi pengikatan selesai.
[in] Binding
RPC_BINDING_HANDLE struktur yang berisi handel pengikatan yang dibuat dengan panggilan sebelumnya ke RpcBindingCreate.
[in] IfSpec
RPC_IF_HANDLE nilai yang menentukan antarmuka tempat panggilan untuk handel pengikatan ini akan dibuat.
Nilai kembali
Fungsi ini mengembalikan RPC_S_OK pada keberhasilan; jika tidak, kode kesalahan RPC_S_* dikembalikan. Untuk informasi tentang kode kesalahan ini, lihat Nilai Pengembalian RPC.
| Menampilkan kode | Deskripsi |
|---|---|
|
RPC berhasil terikat ke server dan panggilan jarak jauh dapat dilakukan. |
|
Fitur USANG RPC diminta untuk operasi pengikatan ini. |
Keterangan
RpcBindingBind menghubungi server RPC dan mengikatnya menggunakan handel pengikatan yang dikembalikan oleh panggilan sebelumnya ke RpcBindingCreate. Handel pengikatan yang dibuat menggunakan metode ini disebut sebagai handel pengikatan "cepat".
Jika nilai parameter pAsync bukan NULL, maka ikatan akan menjadi asinkron dan panggilan ke RpcAsyncCancelCall dan RpcAsyncGetCallStatus dapat dibuat pada status asinkron yang disediakan. Metode penyelesaian yang ditentukan dalam informasi status asinkron yang digunakan untuk memberi sinyal kepada pemanggil bahwa ikatan selesai. Setelah pemberitahuan selesai, panggilan dapat dilakukan menggunakan handel pengikatan yang baru terikat.
Metode ikatan tidak menentukan panggilan apa yang dapat dilakukan menggunakan handel pengikatan — jika ikatan sinkron, panggilan asinkron masih dapat dilakukan pada handel pengikatan, dan sebaliknya. Metode ikatan menentukan bagaimana pemberitahuan untuk ikatan yang berhasil diberi sinyal, khususnya dalam kasus ikatan asinkron.
Karena API ini bertukar pesan dengan server RPC, operasi pengikatan dapat memakan waktu lama berdasarkan sejumlah faktor independen termasuk lalu lintas jaringan dan pemblokiran server. Jika pengikatan sinkron, operasi pengikatan dapat memblokir jika server diblokir.
Setelah pengikatan selesai, semantik panggilan yang dilakukan pada handel pengikatan sama dengan panggilan yang dilakukan pada jenis handel pengikatan lainnya, tetapi dengan empat perbedaan penting, tercantum di bawah ini:
- Semua panggilan pada handel pengikatan ini harus dilakukan pada antarmuka yang ditentukan dalam IfSpec. Handel pengikatan secara unik terkait dengan antarmuka ini. Antarmuka itu sendiri dapat dibongkar sebelum handel pengikatan dihancurkan, tetapi informasi ekstensif tentang antarmuka di-cache dalam handel pengikatan, dan jika panggilan dilakukan pada handel pengikatan yang sama untuk antarmuka yang berbeda, hasilnya tidak terdefinisi.
- Panggilan balik RPC tidak diizinkan pada handel pengikatan. Jika server RPC mencoba melakukan panggilan balik menggunakan metode dengan atribut [callback], panggilan ditolak dengan kode status kesalahan RPC_S_CANNOT_SUPPORT.
- Dengan handel pengikatan klasik, RPC akan mencoba terhubung kembali secara transparan dengan server jika koneksi terputus. Untuk handel pengikatan cepat, RPC tidak akan mencoba menyambungkan kembali secara transparan ke server; sebaliknya, ini akan mengembalikan salah satu kesalahan berikut: RPC_S_SERVER_UNAVAILABLE, RPC_S_CALL_FAILED, dan RPC_C_CALL_FAILED_DNE. Jika koneksi terputus karena kredensial yang ditolak, RPC_S_ACCESS_DENIED dikembalikan; dan jika server mengalami kesalahan sementara karena kurangnya memori, RPC_S_OUT_OF_MEMORY dikembalikan. Kesalahan konektivitas lainnya adalah hasil dari kesalahan marshaling atau unmarshaling yang dikembalikan oleh rutinitas server. Dalam kasus koneksi yang hilang, panggilan harus membatalkan ikatan dengan memanggil RpcBindingUnbind dan kemudian mengikat kembali dengan panggilan lain ke RpcBindingBind.
Jika panggilan ke RpcBindingBind gagal, maka handel pengikatan tidak terikat ke server dan pemanggil dapat mencoba mengikat lagi dengan panggilan lain ke API yang sama, atau dapat membebaskan handel pengikatan. Karena operasi pengikatan yang gagal tidak memindahkan handel pengikatan ke status terikat, RpcBindingUnbind tidak boleh dipanggil di atasnya.
Fungsi tertentu tidak boleh dipanggil sampai operasi pengikatan telah memberi sinyal penyelesaian, khususnya:
- RpcBindingFree
- RpcBindingReset
- RpcBindingSetAuthInfo dan RpcBindingSetAuthInfoEx
- RpcBindingSetObject
- RpcBindingSetOption
- RpcMgmtSetComTimeout
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows Vista, Windows XP dengan SP2 [aplikasi desktop | Aplikasi UWP] |
| Server minimum yang didukung | Windows Server 2008, Windows Server 2003 dengan SP1 [aplikasi desktop | Aplikasi UWP] |
| Target Platform | Windows |
| Header | rpcasync.h (termasuk Rpc.h) |
| Pustaka | Rpcrt4.lib |
| DLL | Rpcrt4.dll |