Fungsi RpcEpRegisterNoReplaceA (rpcdce.h)
Fungsi RpcEpRegisterNoReplace menambahkan informasi alamat server ke database peta titik akhir lokal.
Sintaks
RPC_STATUS RpcEpRegisterNoReplaceA(
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVector,
UUID_VECTOR *UuidVector,
RPC_CSTR Annotation
);
Parameter
IfSpec
Antarmuka untuk mendaftar dengan database peta titik akhir lokal.
BindingVector
Penunjuk ke vektor handel pengikatan tempat server dapat menerima panggilan prosedur jarak jauh.
UuidVector
Penunjuk ke vektor UUID objek yang ditawarkan oleh server. Aplikasi server membangun vektor ini.
Nilai parameter null menunjukkan tidak ada UUID objek untuk didaftarkan.
Annotation
Penunjuk ke komentar string karakter yang diterapkan ke setiap elemen lintas produk yang ditambahkan ke database peta titik akhir lokal. Panjang string dapat mencapai 64 karakter, termasuk karakter null-terminating. Tentukan nilai null atau string null-terminated ("\0") jika tidak ada string anotasi.
String anotasi digunakan oleh aplikasi hanya untuk informasi. RPC tidak menggunakan string ini untuk menentukan instans server mana yang dikomunikasikan klien dengan atau untuk menghitung elemen dalam database peta titik akhir.
Nilai kembali
Nilai | Makna |
---|---|
|
Panggilan berhasil. |
|
Tidak ada pengikatan. |
|
Handel pengikatan tidak valid. |
|
Ini adalah jenis pengikatan yang salah untuk operasi. |
Keterangan
Fungsi RpcEpRegisterNoReplace menambahkan entri ke database peta titik akhir host lokal. Fungsi ini tidak menggantikan entri database yang ada.
Server menggunakan RpcEpRegisterNoReplace daripada RpcEpRegister ketika beberapa instans server akan berjalan pada host yang sama. Dengan kata lain, gunakan fungsi ini ketika lebih dari satu instans server akan menawarkan antarmuka UUID, UUID objek, dan urutan protokol yang sama pada satu waktu.
Karena entri tidak diganti saat memanggil RpcEpRegisterNoReplace, server harus membatalkan pendaftaran sendiri sebelum berhenti berjalan. Jika tidak, data basi akan terakumulasi setiap kali instans server berhenti berjalan tanpa memanggil RpcEpUnregister. Entri kedaluarsa meningkatkan kemungkinan klien akan menerima titik akhir ke server yang tidak ada. Klien akan menghabiskan waktu untuk mencoba berkomunikasi dengan server yang tidak ada sebelum mendapatkan titik akhir lain.
Server dapat menggunakan RpcEpRegister dan RpcEpRegisterNoReplace untuk mendaftarkan entri dalam database pemeta titik akhir. Sebelumnya untuk Windows 2000, dua fungsi tersedia untuk memungkinkan server menimpa entri kedaluarsa dalam database pemeta titik akhir yang tersisa dari instans server sebelumnya yang tidak lagi berjalan. Database pemeta titik akhir secara otomatis menghapus entri yang didaftarkan oleh instans server segera setelah server berhenti berfungsi. Namun, server tidak diizinkan untuk mengganti entri pemeta titik akhir server lain untuk tujuan keamanan. Oleh karena itu, RpcEpRegister dan RpcEpRegisterNoReplace melakukan fungsionalitas yang sebagian besar sama.
Aplikasi server memanggil RpcEpRegister untuk mendaftarkan titik akhir yang ditentukan dengan memanggil salah satu fungsi berikut:
- RpcServerUseAllProtseqs
- RpcServerUseProtseq
- RpcServerUseProtseqEp
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf
Jika urutan protokol digunakan tanpa menentukan titik akhir, pustaka run-time RPC secara otomatis menghasilkan titik akhir dinamis. Dalam hal ini, server dapat memanggil RpcServerInqBindings diikuti oleh RpcEpRegisterNoReplace untuk membuatnya tersedia untuk beberapa klien. Jika tidak, server yang dimulai secara otomatis hanya diketahui oleh klien tempat server dimulai.
Setiap elemen yang ditambahkan ke database peta titik akhir secara logis berisi hal berikut:
- Antarmuka UUID
- Versi antarmuka (utama dan minor)
- Gagang pengikatan
- UUID Objek (opsional)
- Anotasi (opsional)
Catatan
Header rpcdce.h mendefinisikan RpcEpRegisterNoReplace sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | rpcdce.h (termasuk Rpc.h) |
Pustaka | Rpcrt4.lib |
DLL | Rpcrt4.dll |