PNRP et WSALookupServiceBegin
PNRP utilise la fonction WSALookupServiceBegin pour démarrer le processus qui permet à une application d’effectuer les opérations suivantes :
Les clients qui tentent d’exécuter l’une des fonctions utilisent les fonctions WSALookupServiceBegin, WSALookupServiceNext et WSALookupServiceEnd .
À l’aide de 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.
Le processus d’utilisation des noms d’homologues est différent de l’utilisation de clouds. Chaque processus est décrit séparément dans cette rubrique.
Résolution d’un nom
Une application utilise WSALookupServiceBegin pour obtenir l’adresse IP, le port et le protocole d’un service homologue inscrit sur un autre ordinateur. La fonction WSALookupServiceBegin est utilisée pour démarrer le processus de résolution de noms et configurer les paramètres et les restrictions. Un handle est retourné et doit être utilisé lors de l’appel de WSALookupServiceNext et WSANSPIoctl.
lpqsRestrictions
Lors de la résolution d’un nom d’homologue, la structure LPWSAQUERYSET que le paramètre lpqsRestrictions référence doit contenir les valeurs suivantes :
-
dwSize
-
Spécifie la taille de cette structure.
-
lpszServiceInstanceName
-
Spécifie un nom d’homologue à résoudre.
-
lpServiceClassID
-
Doit être SVCID_PNRPNAME.
-
lpVersion
-
Réservé, doit être NULL.
-
lpszComment
-
Réservé, doit être NULL.
-
dwNameSpace
-
Doit être NS_PNRPNAME ou NS_ALL.
-
lpNSProviderID
-
Doit être NS_PROVIDER_PNRPNAME ou NULL.
-
lpszContext
-
Doit être un nom de cloud, une chaîne vide ou NULL. Si cette valeur est NULL ou une chaîne vide, le cloud par défaut « Global_ » est utilisé. Sinon, il doit pointer vers un nom de cloud valide.
-
dwNumberOfProtocols
-
Réservé, doit être égal à zéro (0).
-
lpszQueryString
-
Réservé, doit être NULL.
-
dwNumberOfCsAddrs
-
Réservé, doit être égal à zéro (0).
-
lpcsaBuffer
-
Réservé, doit être NULL.
-
dwOutputFlags
-
Réservé, doit être égal à zéro (0).
-
lpBlob
-
Doit être un pointeur vers une structure BLOB ou NULL. Si elle a la valeur NULL, les valeurs par défaut sont utilisées. S’il est défini, lpBlob pointe vers une structure PNRPINFO , et des paramètres spécifiques dans la structure PNRPINFO doivent être définis. Pour plus d’informations, consultez les descriptions suivantes de la structure PNRPINFO.
PNRPINFO, structure
Si le membre lpBlob de la structure LPWSAQUERYSET est défini, les membres suivants de la structure PNRPINFO doivent être définis :
-
dwSize
-
Spécifie la taille de cette structure.
-
lpwszIdentity
-
Réservé, doit être NULL.
-
nMaxResolve
-
Spécifie le nombre de résolutions demandé.
-
dwTimeout
-
Spécifie le délai d’attente demandé pour attendre les réponses. La valeur par défaut est 30 secondes. La valeur maximale est de 600 secondes (10 minutes).
-
dwLifetime
-
Réservé, doit être égal à zéro (0).
-
enResolveCriteria
-
Doit être l’une des valeurs autorisées. La valeur par défaut est PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Les valeurs valides sont spécifiées par PNRP_RESOLVE_CRITERIA.
-
dwFlags
-
Doit être égal à zéro (0) ou PNRPINFO_HINT. La valeur par défaut est zéro (0).
-
saHint
-
Spécifie l’adresse IP de l’indicateur. L’indicateur est utilisé lors de la tentative de recherche du nom d’homologue le plus proche. Le format de l’indicateur est une adresse IPv6. Si saHint n’est pas spécifié lors de la recherche du nom d’homologue le plus proche, une adresse IPv6 de l’ordinateur local est utilisée à la place. Ce membre est ignoré si dwFlags n’est pas défini.
-
enNameState
-
Réservé, doit être égal à zéro (0).
dwControlFlags
Les indicateurs LUP_RETURN_* suivants sont pris en charge par PNRP :
Valeur | Description |
---|---|
LUP_RETURN_NAME | Retourne un nom et un contexte. |
LUP_RETURN_COMMENT | Retourne un commentaire associé à un nom. |
LUP_RETURN_ADDR | Retourne une adresse associée à un nom. |
Énumération des clouds réseau
lpqsRestrictions
Lors de l’énumération de clouds, la structure LPWSAQUERYSET référencée par le paramètre lpqsRestrictions doit contenir les valeurs suivantes :
-
dwSize
-
Spécifie la taille de cette structure.
-
lpszServiceInstanceName
-
Doit être NULL.
-
lpServiceClassID
-
Doit être SVCID_PNRPCLOUD.
-
lpVersion
-
Réservé, doit être NULL.
-
lpszComment
-
Réservé, doit avoir la valeur NULL.
-
dwNameSpace
-
Doit être NS_PNRPCLOUD.
-
lpNSProviderID
-
Doit être NS_PROVIDER_PNRPCLOUD ou NULL.
-
lpszContext
-
Réservé, doit avoir la valeur NULL.
-
dwNumberOfProtocols
-
Réservé, doit être égal à zéro (0).
-
lpszQueryString
-
Réservé, doit avoir la valeur NULL.
-
dwNumberOfCsAddrs
-
Réservé, doit être égal à zéro (0).
-
lpcsaBuffer
-
Réservé, doit avoir la valeur NULL.
-
dwOutputFlags
-
Réservé, doit être égal à zéro (0).
-
lpBlob
-
Pointeur vers une structure BLOB qui pointe vers une structure PNRPCLOUDINFO . Si lpBlob a la valeur NULL, tous les clouds sont énumérés.
PNRPCLOUDINFO Structure
Lors de l’énumération des clouds, les membres suivants de la structure PNRPCLOUDINFO doivent être définis :
-
dwSize
-
Spécifie la taille de cette structure.
-
Nuage
-
Pointe vers une structure qui spécifie des critères que vous pouvez utiliser pour filtrer les résultats de recherche. Le membre Cloud.Scope peut être PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPE ou PNRP_LINK_LOCAL_SCOPE. Si PNRP_SCOPE_ANY est spécifié, tous les clouds sont retournés. Sinon, seuls les clouds qui correspondent à Cloud.Scope sont retournés.
-
enCloudState
-
Réservé, doit être égal à zéro (0).
dwControlFlags
Les indicateurs LUP_RETURN_* suivants sont pris en charge par PNRP :
Valeur | Description |
---|---|
LUP_RETURN_NAME | Retourne un nom et un contexte. |
LUP_RETURN_BLOB | Retourne l’objet BLOB associé à ce cloud. |
Rubriques connexes