PNRP et WSANSPIoctl
PNRP utilise la fonction WSANSPIoctl pour recevoir des notifications sur les modifications apportées aux éléments suivants :
- Liste du cloud réseau
- Disponibilité des résultats d’une demande de résolution de noms
Le premier appel à WSALookupServiceBegin définit le type d’informations dont un client est averti. Un client peut être averti avec un message Windows, une routine d’achèvement, un handle pour un objet WSAEVENT ou un port. Pour plus d’informations sur les options et la définition du paramètre lpCompletion , consultez WSANSPIoctl.
Pour continuer à recevoir des notifications après un appel à WSALookupServiceNext, une application doit appeler à nouveau WSANSPIoctl .
La fonction WSALookupServiceNext se bloque même si WSANSPIoctl est appelé. Avant d’appeler WSALookupServiceNext, une application doit attendre qu’elle reçoive une notification si le blocage est un problème.
Lors de l’appel de cette fonction, les paramètres doivent avoir les valeurs suivantes :
-
hLookup
-
Spécifie le handle retourné par WSALookupServiceBegin .
-
dwControlCode
-
Doit être SIO_NSP_NOTIFY_CHANGE.
-
lpvInBuffer
-
Doit être NULL.
-
cbInBuffer
-
Doit être égal à zéro (0).
-
lpvOutBuffer
-
Doit être NULL.
-
cbOutBuffer
-
Doit être égal à zéro (0).
-
lpcbBytesReturned
-
Doit être NULL.
-
lpCompletion
-
Spécifie null ou un pointeur vers une structure WSACOMPLETION .
Une fois qu’une notification est reçue, appelez WSALookupServiceNext une fois pour obtenir les résultats.
Pour mettre fin à une recherche, appelez WSALookupServiceEnd.
Notifications de résolution
Un client peut être averti à tout moment de l’ajout d’une entrée de résolution de noms. Le client appelle ensuite WSALookupServiceNext pour obtenir les données de résolution.
Si le client n’utilise pas cette technique, un appel à WSALookupServiceNext peut être bloqué jusqu’à ce que le délai d’expiration spécifié se produise.
Notifications de liste cloud
Un client peut être averti à chaque modification d’un ensemble de clouds.
La fonction WSALookupServiceNext retourne WSA_E_NO_MORE en tant que délimiteur défini. L’application cliente doit énumérer les clouds existants jusqu’à ce que ce message soit retourné, puis utiliser un schéma de notification pour récupérer les modifications suivantes au fur et à mesure qu’elles se produisent. Une application cliente peut également appeler WSALookupServiceNext, mais l’appel est bloqué jusqu’à ce qu’une modification se produise.
La fonction WSALookupServiceNext retourne un cloud dans une structure WSAQUERYSET . L’un des indicateurs suivants est retourné dans le membre dwOutputFlags .
Valeur | Description |
---|---|
RESULT_IS_ADDED | Le cloud retourné est ajouté. |
RESULT_IS_CHANGED | Le cloud retourné est modifié. |
RESULT_IS_DELETED | Le cloud retourné est supprimé et n’est pas valide. |
Rubriques connexes
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET