PNRP dan WSALookupServiceNext
PNRP menggunakan fungsi WSALookupServiceNext untuk mencocokkan kueri yang ditentukan dalam panggilan sebelumnya ke WSALookupServiceBegin. Hasil fungsi WSALookupServiceNext ditentukan oleh pengaturan dalam struktur WSAQUERYSET yang diteruskan dalam panggilan fungsi WSALookupServiceBegin awal. Fungsi ini digunakan untuk melakukan dua fungsi berikut:
- Mengatasi nama serekan ke daftar alamat
- Menghitung cloud jaringan
Dengan menggunakan WSANSPIoctl, layanan pencarian dapat digunakan secara asinkron. Untuk informasi tentang menggunakan fungsi layanan pencarian secara asinkron, lihat PNRP dan WSANSPIoctl.
Fungsi WSALookupServiceNext memblokir bahkan jika WSANSPIoctl dipanggil. Sebelum memanggil WSALookupServiceNext, aplikasi harus menunggu hingga menerima pemberitahuan—jika pemblokiran adalah masalah.
Mengatasi Nama Serekan ke Daftar Alamat
Saat menyelesaikan nama serekan ke daftar alamat, struktur LPWSAQUERYSET yang dikembalikan dalam parameter lpqsResults berisi nilai berikut:
-
dwSize
-
Mengembalikan ukuran struktur.
-
lpszServiceInstanceName
-
Mengembalikan nama serekan—jika LUP_RETURN_NAME, LUP_RETURN_ALL, atau NULL ditentukan.
-
lpServiceClassID
-
Mengembalikan SVCID_PNRPNAME.
-
lpVersion
-
Mengembalikan NULL.
-
lpszComment
-
Mengembalikan komentar—jika LUP_RETURN_COMMENT, LUP_RETURN_ALL, atau NULL ditentukan.
-
dwNameSpace
-
Mengembalikan NS_PNRPNAME.
-
lpNSProviderID
-
Mengembalikan NS_PROVIDER_PNRPNAME.
-
lpszContext
-
Mengembalikan nama cloud jika LUP_RETURN_NAME, LUP_RETURN_ALL, atau NULL ditentukan.
-
dwNumberOfProtocols
-
Mengembalikan nol (0).
-
lpszQueryString
-
Mengembalikan NULL.
-
dwNumberOfCsAddrs
-
Mengembalikan jumlah entri dalam array CSADDR_INFO jika LUP_RETURN_ADDR, LUP_RETURN_ALL, atau NULL ditentukan. Nilai ini dan informasi dalam lpcsaBuffer adalah bit kunci informasi yang dikembalikan dalam struktur ini.
-
lpcsaBuffer
-
Mengembalikan penunjuk ke array struktur CSADDR_INFO jika LUP_RETURN_ADDR, LUP_RETURN_ALL, atau NULL ditentukan. Buffer ini dan nilai dalam dwNumberOfCsAddrs adalah bit informasi utama yang dikembalikan dalam struktur ini.
-
dwOutputFlags
-
Mengembalikan nol (0).
-
lpBlob
-
Mengembalikan NULL.
Menghitung Cloud Jaringan
Saat menghitung cloud, struktur LPWSAQUERYSET yang dikembalikan dalam parameter lpqsResults berisi nilai berikut:
-
dwSize
-
Mengembalikan ukuran struktur.
-
lpszServiceInstanceName
-
Mengembalikan nama cloud—jika LUP_RETURN_NAME, LUP_RETURN_ALL, atau NULL ditentukan.
-
lpServiceClassID
-
Mengembalikan SVCID_PNRPCLOUD.
-
lpVersion
-
Mengembalikan NULL.
-
lpszComment
-
Mengembalikan NULL.
-
dwNameSpace
-
Mengembalikan NS_PNRPCLOUD.
-
lpNSProviderID
-
Mengembalikan NS_PROVIDER_PNRPCLOUD.
-
lpszContext
-
Mengembalikan NULL.
-
dwNumberOfProtocols
-
Mengembalikan nol (0).
-
lpszQueryString
-
Mengembalikan NULL.
-
dwNumberOfCsAddrs
-
Mengembalikan nol (0).
-
lpcsaBuffer
-
Mengembalikan NULL.
-
dwOutputFlags
-
Mengembalikan nol (0).
-
lpBlob
-
Mengembalikan penunjuk ke struktur BLOB yang menunjuk ke struktur PNRPCLOUDINFO —jika LUP_RETURN_BLOB, LUP_RETURN_ALL, atau NULL ditentukan.
Struktur PNRPCLOUDINFO
Saat menghitung nama cloud, nilai berikut dikembalikan dalam struktur PNRPCLOUDINFO :
-
dwSize
-
Ukuran struktur ini.
-
Awan
-
Nilai cloud aktual.
-
enCloudState
-
Status cloud saat ini. PNRP_CLOUD_STATE menentukan nilai yang valid.
-
enCloudFlags
-
Menunjukkan bahwa nama cloud valid di jaringan, atau hanya valid pada komputer saat ini. PNRP_CLOUD_FLAGS menentukan nilai yang valid. Beberapa nama cloud valid di komputer mana pun di jaringan yang sama. Nama cloud lainnya hanya valid di komputer saat ini, dan mungkin hanya berlaku untuk jangka waktu tertentu.
- Jika enCloudFlags diatur ke PNRP_CLOUD_NAME_LOCAL, namanya hanya valid secara lokal.
- Jika enCloudFlags tidak diatur, maka nama cloud dapat ditransfer ke komputer lain.
Topik terkait