Fungsi RpcNsBindingImportNext (rpcnsi.h)

Fungsi RpcNsBindingImportNext mencari antarmuka (dan secara opsional objek dari database layanan nama) dan mengembalikan handel pengikatan server yang kompatibel, jika ditemukan.

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

Sintaks

RPC_STATUS RpcNsBindingImportNext(
  RPC_NS_HANDLE      ImportContext,
  RPC_BINDING_HANDLE *Binding
);

Parameter

ImportContext

Handel layanan nama yang dikembalikan dari fungsi RpcNsBindingImportBegin .

Binding

Mengembalikan penunjuk ke handel pengikatan server yang kompatibel dengan klien untuk server.

Menampilkan nilai

Nilai Makna
RPC_S_OK
Panggilan berhasil.
RPC_S_NO_MORE_BINDINGS
Tidak ada lagi pengikatan.
RPC_S_NAME_SERVICE_UNAVAILABLE
Layanan nama tidak tersedia.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Fungsi RpcNsBindingImportNext mengembalikan satu handel pengikatan server yang kompatibel dengan klien untuk server yang menawarkan antarmuka dan UUID objek yang ditentukan oleh parameter IfSpec dan ObjUuid dalam fungsi RpcNsBindingImportBegin . Fungsi ini hanya berkomunikasi dengan database layanan nama, tidak langsung dengan server.

Efektif dengan Windows 2000, lingkungan RPC menggunakan Direktori Aktif sebagai database layanan-nama dan urutan di mana lingkungan run-time melakukan pencarian adalah sebagai berikut:

  • Cari di cache lokal. Jika tidak ada entri,
  • Cari di Direktori Aktif. Jika tidak ada entri,
  • Kirim permintaan siaran ke semua layanan direktori lainnya di domain.

    Perhatikan bahwa jika entri ada di Direktori Aktif, tetapi tidak ada informasi yang terkait dengan entri, lingkungan run-time tidak mengeluarkan permintaan siaran ini.

Handel pengikatan kompatibel yang dikembalikan selalu berisi UUID objek, nilainya tergantung pada parameter ObjUuid dalam fungsi RpcNsBindingImportBegin . Jika UUID objek non-null ditentukan, handel pengikatan yang dikembalikan berisi UUID objek tersebut. Namun, jika UUID objek null atau nilai null ditentukan, UUID objek yang dikembalikan adalah hasil dari kemungkinan berikut:
  • Jika server tidak mengekspor UUID objek apa pun, handel pengikatan yang dikembalikan berisi UUID objek nihil.
  • Jika server mengekspor satu UUID objek, handel pengikatan yang dikembalikan berisi UUID objek tersebut.
  • Jika server mengekspor beberapa UUID objek, handel pengikatan yang dikembalikan berisi salah satu UUID objek. Operasi impor-berikutnya memilih UUID objek yang dikembalikan dengan cara non-deterministik. Akibatnya, UUID objek yang berbeda dapat dikembalikan untuk setiap handel pengikatan yang kompatibel dari satu entri server.
Fungsi RpcNsBindingImportNext memilih dan mengembalikan satu handel pengikatan server dari handel pengikatan yang kompatibel yang ditemukan. Aplikasi klien dapat menggunakan handel pengikatan tersebut untuk mencoba panggilan prosedur jarak jauh ke server. Jika klien gagal membangun hubungan dengan server, klien dapat memanggil RpcNsBindingImportNext lagi.

Setiap kali klien memanggil RpcNsBindingImportNext, fungsi mengembalikan handel pengikatan server lain. Handel pengikatan yang dikembalikan tidak diurutkan. Aplikasi klien memanggil fungsi RpcNsBindingInqEntryName untuk mendapatkan database layanan nama dalam nama entri tempat handel pengikatan datang. Ketika pencarian mencapai akhir database layanan nama, RpcNsBindingInqEntryName mengembalikan status RPC_S_NO_MORE_BINDINGS dan mengembalikan nilai parameter pengikatan NULL.

Fungsi RpcNsBindingImportNext mengalokasikan penyimpanan untuk data yang direferensikan oleh parameter Pengikatan yang dikembalikan. Ketika aplikasi klien selesai dengan handel pengikatan, aplikasi harus memanggil RpcBindingFree untuk membatalkan alokasi penyimpanan. Setiap panggilan ke RpcNsBindingImportNext memerlukan panggilan yang sesuai ke RpcBindingFree.

Klien bertanggung jawab untuk memanggil fungsi RpcNsBindingImportDone , yang menghapus konteks impor. Klien juga memanggil RpcNsBindingImportDone sebelum memanggil RpcNsBindingImportBegin untuk memulai pencarian baru untuk server yang kompatibel. Karena urutan handel pengikatan yang dikembalikan berbeda untuk setiap pencarian baru, urutan di mana handel pengikatan dikembalikan ke aplikasi dapat berbeda setiap kali aplikasi dijalankan.

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

RpcBindingFree

RpcNsBindingImportBegin

RpcNsBindingImportDone

RpcNsBindingInqEntryName

RpcNsBindingLookupBegin

RpcNsBindingLookupDone

RpcNsBindingLookupNext

RpcNsBindingSelect