PNRP e WSANSPIoctl
PNRP usa la funzione WSANSPIoctl per ricevere notifiche sulle modifiche apportate alle seguenti:
- Elenco di cloud di rete
- Disponibilità dei risultati di una richiesta di risoluzione dei nomi
La prima chiamata a WSALookupServiceBegin definisce il tipo di informazioni su cui un client riceve una notifica. Un client può ricevere una notifica con un messaggio di Windows, una routine di completamento, un handle per un oggetto WSAEVENT o una porta. Per altre informazioni sulle opzioni e sull'impostazione del parametro lpCompletion , vedere WSANSPIoctl.
Per continuare a ricevere notifiche dopo una chiamata a WSALookupServiceNext, un'applicazione deve chiamare nuovamente WSANSPIoctl .
La funzione WSALookupServiceNext si blocca anche se viene chiamato WSANSPIoctl . Prima di chiamare WSALookupServiceNext, un'applicazione deve attendere fino a quando non riceve una notifica, se il blocco è un problema.
Quando si chiama questa funzione, i parametri devono avere i valori seguenti:
-
hLookup
-
Specifica l'handle restituito da WSALookupServiceBegin .
-
dwControlCode
-
Deve essere SIO_NSP_NOTIFY_CHANGE.
-
lpvInBuffer
-
Deve essere NULL.
-
cbInBuffer
-
Deve essere zero (0).
-
lpvOutBuffer
-
Deve essere NULL.
-
cbOutBuffer
-
Deve essere zero (0).
-
lpcbBytesReturned
-
Deve essere NULL.
-
lpCompletion
-
Specifica NULL o un puntatore a una struttura WSACOMPLETION .
Dopo la ricezione di una notifica, chiamare WSALookupServiceNext una volta per ottenere i risultati.
Per terminare una ricerca, chiamare WSALookupServiceEnd.
Notifiche di risoluzione
Un client può ricevere una notifica ogni volta che viene aggiunta una voce di risoluzione dei nomi. Il client chiama quindi WSALookupServiceNext per ottenere i dati di risoluzione.
Se il client non usa questa tecnica, è possibile bloccare una chiamata a WSALookupServiceNext fino a quando non si verifica il timeout specificato.
Notifiche elenco cloud
Un client può ricevere una notifica ogni volta che viene apportata una modifica a un set di cloud.
La funzione WSALookupServiceNext restituisce WSA_E_NO_MORE come delimitatore di set. L'applicazione client deve enumerare i cloud esistenti fino a quando non viene restituito questo messaggio e quindi usare uno schema di notifica per recuperare le modifiche successive non appena si verificano. Un'applicazione client può anche chiamare WSALookupServiceNext, ma la chiamata viene bloccata fino a quando non si verifica una modifica.
La funzione WSALookupServiceNext restituisce un cloud in una struttura WSAQUERYSET . Uno dei flag seguenti viene restituito nel membro dwOutputFlags .
Valore | Descrizione |
---|---|
RESULT_IS_ADDED | Viene aggiunto il cloud restituito. |
RESULT_IS_CHANGED | Il cloud restituito viene modificato. |
RESULT_IS_DELETED | Il cloud restituito viene eliminato e non è valido. |
Argomenti correlati
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET