PNRP i WSANSPIoctl
Protokół PNRP używa funkcji WSANSPIoctl do odbierania powiadomień o zmianach w następujących kwestiach:
- Lista chmur sieci
- Dostępność wyników żądania rozpoznawania nazw
Pierwsze wywołanie WSALookupServiceBegin definiuje typ informacji, o których powiadamia klient. Klient może być powiadamiany za pomocą komunikatu systemu Windows, procedury uzupełniania, uchwytu do obiektu WSAEVENT lub portu. Aby uzyskać więcej informacji na temat opcji i ustawiania parametru lpCompletion, zobacz WSANSPIoctl.
Aby kontynuować odbieranie powiadomień po wywołaniu polecenia WSALookupServiceNext, aplikacja musi ponownie wywołać WSANSPIoctl.
Funkcja WSALookupServiceNext blokuje się, nawet jeśli wywoływana jest WSANSPIoctl. Przed wywołaniem WSALookupServiceNextaplikacja musi czekać, aż otrzyma powiadomienie — jeśli blokowanie jest problemem.
Podczas wywoływania tej funkcji parametry muszą mieć następujące wartości:
-
hLookup
-
Określa dojście, które zwraca WSALookupServiceBegin.
-
dwControlCode
-
Musi być SIO_NSP_NOTIFY_CHANGE.
-
lpvInBuffer
-
Musi mieć wartość null.
-
cbInBuffer
-
Musi mieć zero (0).
-
lpvOutBuffer
-
Musi mieć wartość null.
-
cbOutBuffer
-
Musi mieć zero (0).
-
lpcbBytesReturned
-
Musi mieć wartość null.
-
lpCompletion
-
Określa null lub wskaźnik do struktury WSACOMPLETION.
Po odebraniu powiadomienia wywołaj WSALookupServiceNext jeden raz, aby uzyskać wyniki.
Aby zakończyć wyszukiwanie, wywołaj metodę WSALookupServiceEnd.
Powiadomienia o rozwiązaniu
Klient może być powiadamiany za każdym razem, gdy dodawany jest wpis rozpoznawania nazw. Następnie klient wywołuje WSALookupServiceNext w celu uzyskania danych rozwiązania.
Jeśli klient nie używa tej techniki, wywołanie WSALookupServiceNext można zablokować do czasu wystąpienia określonego limitu czasu.
Powiadomienia dotyczące listy chmury
Klient może być powiadamiany za każdym razem, gdy nastąpi zmiana zestawu chmur.
Funkcja WSALookupServiceNext zwraca WSA_E_NO_MORE jako ogranicznik zestawu. Aplikacja kliencka musi wyliczać istniejące chmury do momentu zwrócenia tego komunikatu, a następnie użyć schematu powiadomień, aby pobrać kolejne zmiany w miarę ich występowania. Aplikacja kliencka może również wywołać WSALookupServiceNext, ale wywołanie jest blokowane do momentu wystąpienia zmiany.
Funkcja WSALookupServiceNext zwraca chmurę w strukturze WSAQUERYSET. Jeden z następujących flag jest zwracany w dwOutputFlags elementu członkowskiego.
Wartość | Opis |
---|---|
RESULT_IS_ADDED | Dodawana jest zwracana chmura. |
RESULT_IS_CHANGED | Zwracana chmura zostanie zmieniona. |
RESULT_IS_DELETED | Zwracana chmura jest usuwana i jest nieprawidłowa. |
Tematy pokrewne
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET