PNRP dan WSANSPIoctl
PNRP menggunakan fungsiWSANSPIoctluntuk menerima pemberitahuan tentang perubahan pada hal berikut:
- Daftar cloud jaringan
- Ketersediaan hasil permintaan resolusi nama
Panggilan pertama ke WSALookupServiceBegin menentukan jenis informasi yang diberitahukan klien. Klien dapat diberi tahu dengan pesan Windows, rutinitas penyelesaian, handel ke objek WSAEVENT, atau port. Untuk informasi selengkapnya tentang opsi dan mengatur parameter lpCompletion, lihat WSANSPIoctl.
Untuk terus menerima pemberitahuan setelah panggilan ke WSALookupServiceNext, aplikasi harus memanggil WSANSPIoctl lagi.
Blok fungsiWSALookupServiceNextbahkan jika WSANSPIoctl dipanggil. Sebelum memanggil WSALookupServiceNext, aplikasi harus menunggu hingga menerima pemberitahuan—jika pemblokiran adalah masalah.
Saat memanggil fungsi ini, parameter harus memiliki nilai berikut:
-
hLookup
-
Menentukan handel yang pengembalian WSALookupServiceBegin.
-
dwControlCode
-
Harus SIO_NSP_NOTIFY_CHANGE.
-
lpvInBuffer
-
Harus null.
-
cbInBuffer
-
Harus nol (0).
-
lpvOutBuffer
-
Harus null.
-
cbOutBuffer
-
Harus nol (0).
-
lpcbBytesReturned
-
Harus null.
-
lpCompletion
-
Menentukan NULL atau penunjuk ke strukturWSACOMPLETION.
Setelah pemberitahuan diterima, hubungi WSALookupServiceNext satu kali untuk mendapatkan hasilnya.
Untuk mengakhiri pencarian, panggil WSALookupServiceEnd.
Pemberitahuan Resolusi
Klien dapat diberi tahu kapan saja bahwa entri resolusi nama ditambahkan. Klien kemudian memanggil WSALookupServiceNext untuk mendapatkan data resolusi.
Jika klien tidak menggunakan teknik ini, panggilan ke WSALookupServiceNext dapat diblokir hingga batas waktu yang ditentukan terjadi.
Pemberitahuan Daftar Cloud
Klien dapat diberi tahu kapan saja ada perubahan pada sekumpulan cloud.
FungsiWSALookupServiceNextmengembalikan WSA_E_NO_MORE sebagai pemisah yang ditetapkan. Aplikasi klien harus menghitung cloud yang ada hingga pesan ini dikembalikan, lalu menggunakan skema pemberitahuan untuk mengambil perubahan berikutnya saat terjadi. Aplikasi klien juga dapat memanggil WSALookupServiceNext, tetapi panggilan diblokir sampai perubahan terjadi.
FungsiWSALookupServiceNextmengembalikan cloud dalam struktur WSAQUERYSET. Salah satu bendera berikut dikembalikan dalam anggota dwOutputFlags.
Nilai | Deskripsi |
---|---|
RESULT_IS_ADDED | Cloud yang dikembalikan ditambahkan. |
RESULT_IS_CHANGED | Cloud yang dikembalikan diubah. |
RESULT_IS_DELETED | Cloud yang dikembalikan dihapus dan tidak valid. |
Topik terkait
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET