PNRP et WSANSPIoctl
PNRP utilise la fonction WSANSPIoctl pour recevoir des notifications sur les modifications apportées aux éléments suivants :
- Une liste 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 sur laquelle un client est averti. Un client peut être averti avec un message Windows, une routine d’achèvement, un handle vers 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 bloque même si WSANSPIoctl est appelée. 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 qui WSALookupServiceBegin retourne.
-
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 terminer une recherche, appelez WSALookupServiceEnd.
Notifications de résolution
Un client peut être averti à tout moment qu’une entrée de résolution de noms est ajoutée. 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 fois qu’il y a une modification apportée à 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 à 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