Partager via


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.

 

PNRP et BLOB

PNRP et WSALookupServiceEnd

PNRP et WSALookupServiceNext

PNRP et WSANSPIoctl

PNRP et WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

Codes d’erreur PNRP NSP