Bagikan melalui


PNRP dan WSALookupServiceBegin

PNRP menggunakan fungsi WSALookupServiceBegin untuk memulai proses yang memungkinkan aplikasi melakukan hal berikut:

Klien yang mencoba melakukan salah satu fungsi menggunakan fungsi WSALookupServiceBegin, WSALookupServiceNext, dan WSALookupServiceEnd .

Dengan menggunakan WSANSPIoctl, layanan pencarian dapat digunakan secara asinkron. Untuk informasi tentang menggunakan fungsi layanan pencarian secara asinkron, lihat PNRP dan WSANSPIoctl.

Proses untuk bekerja dengan nama serekan berbeda dari bekerja dengan cloud. Setiap proses dijelaskan secara terpisah dalam topik ini.

Mengatasi Nama

Aplikasi menggunakan WSALookupServiceBegin untuk mendapatkan alamat IP, port, dan protokol untuk layanan serekan yang terdaftar di komputer lain. Fungsi WSALookupServiceBegin digunakan untuk memulai proses resolusi nama, dan menyiapkan parameter dan batasan. Handel dikembalikan, dan harus digunakan saat memanggil WSALookupServiceNext dan WSANSPIoctl.

lpqsRestrictions

Saat menyelesaikan nama serekan, struktur LPWSAQUERYSET yang direferensikan parameter lpqsRestrictions harus berisi nilai berikut:

dwSize

Menentukan ukuran struktur ini.

lpszServiceInstanceName

Menentukan nama serekan yang akan diatasi.

lpServiceClassID

Pasti SVCID_PNRPNAME.

lpVersion

Dicadangkan, harus NULL.

lpszComment

Dicadangkan, harus NULL.

dwNameSpace

Harus NS_PNRPNAME atau NS_ALL.

lpNSProviderID

Harus NS_PROVIDER_PNRPNAME atau NULL.

lpszContext

Harus berupa nama cloud, string kosong, atau NULL. Jika nilai ini NULL atau string kosong, cloud default, "Global_" digunakan. Jika tidak, itu harus menunjuk ke nama cloud yang valid.

dwNumberOfProtocols

Dicadangkan, harus nol (0).

lpszQueryString

Dicadangkan, harus NULL.

dwNumberOfCsAddrs

Dicadangkan, harus nol (0).

lpcsaBuffer

Dicadangkan, harus NULL.

dwOutputFlags

Dicadangkan, harus nol (0).

lpBlob

Harus berupa penunjuk ke struktur BLOB atau NULL. Jika NULL, nilai default akan digunakan. Jika diatur, lpBlob menunjuk ke struktur PNRPINFO , dan parameter tertentu dalam struktur PNRPINFO harus diatur. Untuk informasi selengkapnya, lihat deskripsi berikut untuk Struktur PNRPINFO.

Struktur PNRPINFO

Jika anggota lpBlob dari struktur LPWSAQUERYSET ditetapkan, anggota struktur PNRPINFO berikut harus diatur:

dwSize

Menentukan ukuran struktur ini.

lpwszIdentity

Dicadangkan, harus NULL.

nMaxResolve

Menentukan jumlah resolusi yang diminta.

dwTimeout

Menentukan periode batas waktu yang diminta untuk menunggu respons. Defaultnya adalah 30 detik. Maksimumnya adalah 600 detik (10 menit).

dwLifetime

Dicadangkan, harus nol (0).

enResolveCriteria

Harus salah satu nilai yang diizinkan. Defaultnya adalah PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Nilai yang valid ditentukan oleh PNRP_RESOLVE_CRITERIA.

dwFlags

Harus nol (0) atau PNRPINFO_HINT. Defaultnya adalah nol (0).

saHint

Menentukan alamat IP untuk petunjuk. Petunjuk digunakan saat mencoba menemukan nama serekan terdekat. Format petunjuk adalah alamat IPv6. Jika saHint tidak ditentukan saat menemukan nama serekan terdekat, maka alamat IPv6 komputer lokal digunakan sebagai gantinya. Anggota ini diabaikan jika dwFlags tidak diatur.

enNameState

Dicadangkan, harus nol (0).

dwControlFlags

Bendera LUP_RETURN_* berikut didukung oleh PNRP:

Nilai Deskripsi
LUP_RETURN_NAME Mengembalikan nama dan konteks.
LUP_RETURN_COMMENT Mengembalikan komentar yang terkait dengan nama.
LUP_RETURN_ADDR Mengembalikan alamat yang terkait dengan nama.

 

Menghitung Cloud Jaringan

lpqsRestrictions

Saat menghitung cloud, struktur LPWSAQUERYSET yang direferensikan parameter lpqsRestrictions harus berisi nilai berikut:

dwSize

Menentukan ukuran struktur ini.

lpszServiceInstanceName

Harus NULL.

lpServiceClassID

Pasti SVCID_PNRPCLOUD.

lpVersion

Dicadangkan, harus NULL.

lpszComment

Dicadangkan, harus NULL.

dwNameSpace

Pasti NS_PNRPCLOUD.

lpNSProviderID

Harus NS_PROVIDER_PNRPCLOUD atau NULL.

lpszContext

Dicadangkan, harus NULL.

dwNumberOfProtocols

Dicadangkan, harus nol (0).

lpszQueryString

Dicadangkan, harus NULL.

dwNumberOfCsAddrs

Dicadangkan, harus nol (0).

lpcsaBuffer

Dicadangkan, harus NULL.

dwOutputFlags

Dicadangkan, harus nol (0).

lpBlob

Arahkan ke struktur BLOB yang menunjuk ke struktur PNRPCLOUDINFO . Jika lpBlobNULL, semua cloud dijumlahkan.

Struktur PNRPCLOUDINFO

Saat menghitung cloud, anggota struktur PNRPCLOUDINFO berikut harus diatur:

dwSize

Menentukan ukuran struktur ini.

Awan

Menunjuk ke struktur yang menentukan kriteria yang bisa Anda gunakan untuk memfilter hasil pencarian. Anggota Cloud.Scope dapat PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPE, atau PNRP_LINK_LOCAL_SCOPE. Jika PNRP_SCOPE_ANY ditentukan, semua cloud dikembalikan. Jika tidak, hanya cloud yang cocok dengan Cloud.Scope yang dikembalikan.

enCloudState

Dicadangkan, harus nol (0).

dwControlFlags

Bendera LUP_RETURN_* berikut didukung oleh PNRP:

Nilai Deskripsi
LUP_RETURN_NAME Mengembalikan nama dan konteks.
LUP_RETURN_BLOB Mengembalikan BLOB yang terkait dengan cloud ini.

 

PNRP dan BLOB

PNRP dan WSALookupServiceEnd

PNRP dan WSALookupServiceNext

PNRP dan WSANSPIoctl

PNRP dan WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

Kode Kesalahan PNRP NSP