Fungsi RpcNsBindingExportA (rpcnsi.h)

Fungsi RpcNsBindingExport menetapkan entri layanan-database nama dengan beberapa handel pengikatan dan beberapa objek untuk server.

Catatan Fungsi ini tidak didukung pada Windows Vista dan sistem operasi yang lebih baru.
 

Sintaks

RPC_STATUS RpcNsBindingExportA(
  unsigned long      EntryNameSyntax,
  RPC_CSTR           EntryName,
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVec,
  UUID_VECTOR        *ObjectUuidVec
);

Parameter

EntryNameSyntax

Sintaks EntryName.

Untuk menggunakan sintaks yang ditentukan dalam entri nilai registri HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, berikan nilai RPC_C_NS_SYNTAX_DEFAULT.

EntryName

Penunjuk ke nama entri tempat handel pengikatan dan UUID objek diekspor. Anda tidak dapat menyediakan string null atau kosong. Klien dan server harus menggunakan nama entri yang sama.

IfSpec

Struktur data yang dihasilkan stub yang menentukan antarmuka yang akan diekspor. Nilai null menunjukkan tidak ada handel pengikatan untuk diekspor (hanya UUID objek yang akan diekspor) dan BindingVec diabaikan.

BindingVec

Penunjuk ke pengikatan server untuk diekspor. Nilai null menunjukkan tidak ada handel pengikatan untuk diekspor (hanya UUID objek yang akan diekspor).

ObjectUuidVec

Penunjuk ke vektor UUID objek yang ditawarkan oleh server. Aplikasi server membangun vektor ini. Nilai null menunjukkan tidak ada UUID objek untuk diekspor (hanya handel pengikatan yang akan diekspor).

Nilai kembali

Nilai Makna
RPC_S_OK
Panggilan berhasil.
RPC_S_NOTHING_TO_EXPORT
Tidak ada yang perlu diekspor.
RPC_S_INVALID_BINDING
Handel pengikatan tidak valid.
RPC_S_WRONG_KIND_OF_BINDING
Ini adalah jenis pengikatan yang salah untuk operasi.
RPC_S_INVALID_NAME_SYNTAX
Sintaks nama tidak valid.
RPC_S_UNSUPPORTED_NAME_SYNTAX
Sintaks nama tidak didukung.
RPC_S_INCOMPLETE_NAME
Nama tidak lengkap.
RPC_S_NO_NS_PRIVILEGE
Tidak ada hak istimewa untuk operasi layanan nama.
RPC_S_NAME_SERVICE_UNAVAILABLE
Layanan nama tidak tersedia.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Fungsi RpcNsBindingExport memungkinkan aplikasi server untuk secara publik menawarkan antarmuka dalam database layanan nama untuk digunakan oleh aplikasi klien apa pun.

Efektif dengan Windows 2000, lingkungan run-time RPC menggunakan Direktori Aktif sebagai database layanan-namanya. Ini berarti bahwa entri yang diekspor resmi bertahan dalam layanan nama, dan terlihat bahkan setelah reboot. Ekspor yang tidak sah tidak bertahan. Lihat Access Control di bagian Keamanan Kit Pengembangan Perangkat Lunak Platform (SDK) untuk informasi selengkapnya tentang otorisasi dan Daftar Access Control.

Untuk mengekspor antarmuka, aplikasi server memanggil rutinitas RpcNsBindingExport dengan antarmuka dan handel pengikatan server yang dapat digunakan klien untuk mengakses server. Aplikasi server juga memanggil fungsi RpcNsBindingExport untuk secara publik menawarkan UUID objek sumber daya yang ditawarkannya, jika ada, dalam database layanan nama.

Server dapat mengekspor antarmuka dan objek dalam satu panggilan ke RpcNsBindingExport, atau dapat mengekspornya secara terpisah. Jika entri database layanan nama yang ditentukan oleh EntryName tidak ada, RpcNsBindingExport mencoba membuatnya. Dalam hal ini, aplikasi server harus memiliki hak istimewa untuk membuat entri. Selain memanggil RpcNsBindingExport, server yang memanggil fungsi RpcServerUseAllProtseqs atau RpcServerUseProtseq juga harus mendaftar dengan database peta titik akhir lokal dengan memanggil RpcEpRegister atau RpcEpRegisterNoReplace.

Server tidak diperlukan untuk mengekspor antarmukanya ke database layanan nama. Ketika server tidak mengekspor, hanya klien yang secara privat tahu bahwa informasi pengikatan server dapat mengakses antarmukanya. Misalnya, klien yang memiliki informasi yang diperlukan untuk membangun pengikatan string dapat memanggil RpcBindingFromStringBinding untuk membuat handel pengikatan untuk melakukan panggilan prosedur jarak jauh ke server.

Sebelum memanggil RpcNsBindingExport, server harus melakukan hal berikut:

Vektor yang dikembalikan dari fungsi RpcServerInqBindings menjadi parameter Pengikatan untuk RpcNsBindingExport. Untuk mencegah pengikatan diekspor, atur elemen vektor yang dipilih ke nilai null.

Jika server mengekspor ke entri database layanan nama yang sama beberapa kali, panggilan kedua dan berikutnya ke RpcNsBindingExport menambahkan informasi pengikatan dan UUID objek ketika data tersebut berbeda dari informasi pengikatan yang sudah ada di entri server. Data yang ada tidak dihapus dari entri.

Untuk menghapus handel pengikatan dan UUID objek dari database layanan-nama, aplikasi server memanggil fungsi RpcNsBindingUnexport .

Entri server harus memiliki setidaknya satu handel pengikatan yang ada. Akibatnya, mengekspor hanya UUID ke entri yang tidak ada tidak berpengaruh, dan tidak mendukung semua handel pengikatan akan menghapus entri.

Catatan

Header rpcnsi.h mendefinisikan RpcNsBindingExport 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

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header rpcnsi.h (termasuk Rpc.h)
Pustaka Rpcns4.lib
DLL Rpcns4.dll

Lihat juga

RpcBindingFromStringBinding

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingUnexport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf