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. |
Topik terkait