PNRP et WSALookupServiceNext
PNRP utilise la fonction WSALookupServiceNext pour faire correspondre les requêtes spécifiées dans un appel précédent à WSALookupServiceBegin. Les résultats de la fonction WSALookupServiceNext sont déterminés par les paramètres de la structure WSAQUERYSET passés dans l’appel de fonction WSALookupServiceBegin initial. Cette fonction est utilisée pour effectuer les deux fonctions suivantes :
- Résolution d’un nom d’homologue dans une liste d’adresses
- Énumération des clouds réseau
En utilisant WSANSPIoctl, le service de recherche peut être utilisé de manière asynchrone. Pour plus d’informations sur l’utilisation asynchrone des fonctions du service de recherche, consultez PNRP et WSANSPIoctl.
La fonction WSALookupServiceNext bloque même si WSANSPIoctl est appelé. Avant d’appeler WSALookupServiceNext, une application doit attendre de recevoir une notification si le blocage est un problème.
Résolution d’un nom d’homologue dans une liste d’adresses
Lors de la résolution d’un nom d’homologue en une liste d’adresses, la structure LPWSAQUERYSET retournée dans le paramètre lpqsResults contient les valeurs suivantes :
-
dwSize
-
Retourne la taille de la structure.
-
lpszServiceInstanceName
-
Retourne un nom d’homologue si LUP_RETURN_NAME, LUP_RETURN_ALL ou NULL sont spécifiés.
-
lpServiceClassID
-
Retourne SVCID_PNRPNAME.
-
lpVersion
-
Retourne la valeur NULL.
-
lpszComment
-
Retourne un commentaire si LUP_RETURN_COMMENT, LUP_RETURN_ALL ou NULL sont spécifiés.
-
dwNameSpace
-
Retourne NS_PNRPNAME.
-
lpNSProviderID
-
Retourne NS_PROVIDER_PNRPNAME.
-
lpszContext
-
Retourne le nom du cloud si LUP_RETURN_NAME, LUP_RETURN_ALL ou NULL sont spécifiés.
-
dwNumberOfProtocols
-
Retourne zéro (0).
-
lpszQueryString
-
Retourne la valeur NULL.
-
dwNumberOfCsAddrs
-
Retourne le nombre d’entrées dans le tableau CSADDR_INFO si LUP_RETURN_ADDR, LUP_RETURN_ALL ou NULL sont spécifiés. Cette valeur et les informations contenues dans lpcsaBuffer sont les éléments clés d’informations retournés dans cette structure.
-
lpcsaBuffer
-
Retourne un pointeur vers un tableau de structures CSADDR_INFO si LUP_RETURN_ADDR, LUP_RETURN_ALL ou NULL sont spécifiés. Cette mémoire tampon et la valeur dans dwNumberOfCsAddrs sont les bits d’informations clés retournés dans cette structure.
-
dwOutputFlags
-
Retourne zéro (0).
-
lpBlob
-
Retourne la valeur NULL.
Énumération des clouds réseau
Lors de l’énumération de clouds, la structure LPWSAQUERYSET retournée dans le paramètre lpqsResults contient les valeurs suivantes :
-
dwSize
-
Retourne la taille de la structure.
-
lpszServiceInstanceName
-
Retourne un nom de cloud si LUP_RETURN_NAME, LUP_RETURN_ALL ou NULL sont spécifiés.
-
lpServiceClassID
-
Retourne SVCID_PNRPCLOUD.
-
lpVersion
-
Retourne la valeur NULL.
-
lpszComment
-
Retourne la valeur NULL.
-
dwNameSpace
-
Retourne NS_PNRPCLOUD.
-
lpNSProviderID
-
Retourne NS_PROVIDER_PNRPCLOUD.
-
lpszContext
-
Retourne la valeur NULL.
-
dwNumberOfProtocols
-
Retourne zéro (0).
-
lpszQueryString
-
Retourne la valeur NULL.
-
dwNumberOfCsAddrs
-
Retourne zéro (0).
-
lpcsaBuffer
-
Retourne la valeur NULL.
-
dwOutputFlags
-
Retourne zéro (0).
-
lpBlob
-
Retourne un pointeur vers une structure BLOB qui pointe vers une structure PNRPCLOUDINFO si LUP_RETURN_BLOB, LUP_RETURN_ALL ou NULL sont spécifiés.
PNRPCLOUDINFO Structure
Lors de l’énumération de noms de cloud, les valeurs suivantes sont retournées dans la structure PNRPCLOUDINFO :
-
dwSize
-
La taille de cette structure.
-
Nuage
-
Valeur cloud réelle.
-
enCloudState
-
État actuel d’un cloud. PNRP_CLOUD_STATE spécifie les valeurs valides.
-
enCloudFlags
-
Indique qu’un nom de cloud est valide sur un réseau ou uniquement sur un ordinateur actif. PNRP_CLOUD_FLAGS spécifie les valeurs valides. Certains noms de cloud sont valides sur n’importe quel ordinateur du même réseau. Les autres noms de cloud ne sont valides que sur un ordinateur actuel et peuvent être valides uniquement pendant une période de temps.
- Si enCloudFlags est défini sur PNRP_CLOUD_NAME_LOCAL, le nom est valide uniquement localement.
- Si enCloudFlags n’est pas défini, le nom du cloud peut être transféré vers d’autres ordinateurs.
Rubriques connexes