Fungsi RpcNsBindingExportA (rpcnsi.h)
Fungsi RpcNsBindingExport menetapkan entri layanan-database nama dengan beberapa handel pengikatan dan beberapa objek untuk server.
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 |
---|---|
|
Panggilan berhasil. |
|
Tidak ada yang perlu diekspor. |
|
Handel pengikatan tidak valid. |
|
Ini adalah jenis pengikatan yang salah untuk operasi. |
|
Sintaks nama tidak valid. |
|
Sintaks nama tidak didukung. |
|
Nama tidak lengkap. |
|
Tidak ada hak istimewa untuk operasi layanan nama. |
|
Layanan nama tidak tersedia. |
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:
- Daftarkan satu atau beberapa urutan protokol dengan pustaka run-time RPC lokal dengan memanggil salah satu fungsi berikut:
- Dapatkan daftar pengikatan server dengan memanggil fungsi RpcServerInqBindings .
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 |