Udostępnij za pośrednictwem


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.

 

PNRP i WSALookupServiceBegin

PNRP i WSALookupServiceEnd

PNRP i WSAQUERYSET

kody błędów dostawcy NSP pnRP

WSANSPIoctl

WSALookupServiceBegin

WSALookupServiceEnd

WSAQUERYSET