Bagikan melalui


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
RPC_S_OK
Panggilan berhasil.
RPC_S_NO_BINDINGS
Tidak ada pengikatan.
RPC_S_INVALID_BINDING
Handel pengikatan tidak valid.
RPC_S_WRONG_KIND_OF_BINDING
Ini adalah jenis pengikatan yang salah untuk operasi.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

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:

Jika server juga mengekspor ke database layanan nama, server memanggil nilai RpcEpRegister dengan nilai IfSpec, BindingVector, dan UuidVector yang sama yang digunakan saat memanggil fungsi RpcNsBindingExport .

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)
RpcEpRegisterNoReplace membuat produk silang dari parameter IfSpec, BindingVector, dan UuidVector dan menambahkan setiap elemen dalam lintas produk sebagai pendaftaran terpisah dalam database peta titik akhir.

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

Lihat juga

RpcBindingFromStringBinding

RpcEpRegister

RpcEpUnregister

RpcNsBindingExport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf