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’effectuer l’une des fonctions utilisent les fonctions WSALookupServiceBegin, WSALookupServiceNextet fonctions 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 de service de recherche, consultez PNRP et WSANSPIoctl.

Le processus d’utilisation des noms d’homologues diffère de l’utilisation des 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 restrictions. Un handle est retourné et doit être utilisé lors de l’appel WSALookupServiceNext et WSANSPIoctl.

lpqsRestrictions

Lors de la résolution d’un nom d’homologue, la structure LPWSAQUERYSET que les références de paramètres lpqsRestrictions doivent 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 structureBLOBou NULL . S’il s’agit 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 pour la structure PNRPINFO.

PNRPINFO Structure

Si le membre lpBlob de la structure LPWSAQUERYSET est définie, 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 demandé de résolutions.

dwTimeout

Spécifie la période d’expiration demandée pour attendre les réponses. La valeur par défaut est de 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 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 structureLPWSAQUERYSET que les références de paramètres lpqsRestrictions doivent 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 être NULL .

dwNameSpace

Doit être NS_PNRPCLOUD.

lpNSProviderID

Doit être NS_PROVIDER_PNRPCLOUD ou NULL .

lpszContext

Réservé, doit être NULL .

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

Pointeur vers une structureBLOBpointant vers une structure PNRPCLOUDINFO. Si lpBlob est NULL, tous les clouds sont énumérés.

PNRPCLOUDINFO, structure

Lors de l’énumération de clouds, les membres suivants de la structure PNRPCLOUDINFO doivent être définis :

dwSize

Spécifie la taille de cette structure.

Cloud

Pointe vers une structure qui spécifie des critères que vous pouvez utiliser pour filtrer les résultats de la recherche. Le membre Cloud.Scope peut être PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPEou PNRP_LINK_LOCAL_SCOPE. Si PNRP_SCOPE_ANY est spécifié, tous les clouds sont retournés. Sinon, seuls les clouds qui correspondent aux 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 le BLOB associé à ce cloud.

 

PNRP et le BLOB

PNRP et WSALookupServiceEnd

PNRP et WSALookupServiceNext

PNRP et WSANSPIoctl

PNRP et WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

codes d’erreur NSP PNRP