Structure WSAQUERYSETW (winsock2.h)

La structure WSAQUERYSET fournit des informations pertinentes sur un service donné, notamment l’ID de classe de service, le nom du service, l’identificateur d’espace de noms et les informations de protocole applicables, ainsi qu’un ensemble d’adresses de transport à l’écoute du service.

Syntaxe

typedef struct _WSAQuerySetW {
  DWORD         dwSize;
  LPWSTR        lpszServiceInstanceName;
  LPGUID        lpServiceClassId;
  LPWSAVERSION  lpVersion;
  LPWSTR        lpszComment;
  DWORD         dwNameSpace;
  LPGUID        lpNSProviderId;
  LPWSTR        lpszContext;
  DWORD         dwNumberOfProtocols;
  LPAFPROTOCOLS lpafpProtocols;
  LPWSTR        lpszQueryString;
  DWORD         dwNumberOfCsAddrs;
  LPCSADDR_INFO lpcsaBuffer;
  DWORD         dwOutputFlags;
  LPBLOB        lpBlob;
} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;

Membres

dwSize

Type : DWORD

Taille, en octets, de la structure WSAQUERYSET . Ce membre est utilisé comme mécanisme de contrôle de version, car la taille de la structure WSAQUERYSET a changé sur les versions ultérieures de Windows.

lpszServiceInstanceName

Type : LPTSTR

Pointeur vers une chaîne terminée par NULL facultative qui contient le nom du service. La sémantique d’utilisation de caractères génériques dans la chaîne n’est pas définie, mais peut être prise en charge par certains fournisseurs d’espaces de noms.

lpServiceClassId

Type : LPGUID

GUID correspondant à la classe de service. Ce membre doit être défini.

lpVersion

Type : LPWSAVERSION

Pointeur vers un numéro de version souhaité facultatif du fournisseur d’espace de noms. Ce membre fournit une sémantique de comparaison de versions (autrement dit, la version demandée doit correspondre exactement ou la version ne doit pas être inférieure à la valeur fournie).

lpszComment

Type : LPTSTR

Ce membre est ignoré pour les requêtes.

dwNameSpace

Type : DWORD

Identificateur d’espace de noms qui détermine les fournisseurs d’espaces de noms interrogés. La transmission d’un identificateur d’espace de noms spécifique entraîne l’interrogation des fournisseurs d’espaces de noms qui prennent en charge l’espace de noms spécifié. Si vous spécifiez NS_ALL , tous les fournisseurs d’espaces de noms installés et actifs sont interrogés.

Les options du membre dwNameSpace sont répertoriées dans le fichier Include Winsock2.h . Plusieurs nouveaux fournisseurs d’espaces de noms sont inclus dans Windows Vista et versions ultérieures. D’autres fournisseurs d’espaces de noms peuvent être installés, de sorte que les valeurs possibles suivantes sont uniquement celles couramment disponibles. De nombreuses autres valeurs sont possibles.

Valeur Signification
NS_ALL
Tous les espaces de noms installés et actifs.
NS_BTH
Espace de noms Bluetooth. Cet identificateur d’espace de noms est pris en charge sur Windows Vista et versions ultérieures.
NS_DNS
Espace de noms de domaine (DNS).
NS_EMAIL
Espace de noms d’e-mail. Cet identificateur d’espace de noms est pris en charge sur Windows Vista et versions ultérieures.
NS_NLA
Espace de noms NLA (Network Location Awareness). Cet identificateur d’espace de noms est pris en charge sur Windows XP et versions ultérieures.
NS_PNRPNAME
Espace de nom d’égal à égal pour un nom d’homologue spécifique. Cet identificateur d’espace de noms est pris en charge sur Windows Vista et versions ultérieures.
NS_PNRPCLOUD
Espace de nom d’égal à égal pour une collection de noms d’homologues. Cet identificateur d’espace de noms est pris en charge sur Windows Vista et versions ultérieures.

lpNSProviderId

Type : LPGUID

Pointeur vers un GUID facultatif d’un fournisseur d’espace de noms spécifique à interroger dans le cas où plusieurs fournisseurs d’espaces de noms sont inscrits sous un seul espace de noms, tel que NS_DNS. Le passage du GUID pour un fournisseur d’espace de noms spécifique entraîne la seule interrogation du fournisseur d’espaces de noms spécifié. Les fonctions WSAEnumNameSpaceProviders et WSAEnumNameSpaceProvidersEx peuvent être appelées pour récupérer le GUID d’un fournisseur d’espaces de noms.

lpszContext

Type : LPTSTR

Pointeur vers un point de départ facultatif de la requête dans un espace de noms hiérarchique.

dwNumberOfProtocols

Type : DWORD

Taille, en octets, du tableau de contraintes de protocole. Ce membre peut être égal à zéro.

lpafpProtocols

Type : LPAFPROTOCOLS

Pointeur vers un tableau facultatif de structures AFPROTOCOLS . Seuls les services qui utilisent ces protocoles sont retournés.

lpszQueryString

Type : LPTSTR

Pointeur vers une chaîne de requête facultative terminée par NULL. Certains espaces de noms, tels que Whois++, prennent en charge les requêtes enrichies de type SQL contenues dans une chaîne de texte simple. Ce paramètre est utilisé pour spécifier cette chaîne.

dwNumberOfCsAddrs

Type : DWORD

Ce membre est ignoré pour les requêtes.

lpcsaBuffer

Type : LPCSADDR_INFO

Ce membre est ignoré pour les requêtes.

dwOutputFlags

Type : DWORD

Ce membre est ignoré pour les requêtes.

lpBlob

Type : LPBLOB

Pointeur facultatif vers des données utilisées pour interroger ou définir des informations d’espace de noms spécifiques au fournisseur. Le format de ces informations est spécifique au fournisseur d’espaces de noms.

Remarques

La structure WSAQUERYSET est utilisée dans le cadre de l’architecture du fournisseur d’espace de noms d’origine version 1 disponible sur Windows 95 et versions ultérieures. Une version plus récente 2 de l’architecture de l’espace de noms est disponible sur Windows Vista et versions ultérieures.

Dans la plupart des cas, les applications qui s’intéressent uniquement à un protocole de transport particulier doivent limiter leur requête par famille d’adresses et par protocole plutôt que par espace de noms. Cela permettrait à une application qui doit localiser un service TCP/IP, par exemple, de faire traiter sa requête par tous les espaces de noms disponibles tels que le fichier d’hôtes locaux, DNS et NIS.

Notes

L’en-tête winsock2.h définit WSAQUERYSET en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête winsock2.h

Voir aussi

Bluetooth et WSAQUERYSET pour la recherche d’appareil

Bluetooth et WSAQUERYSET pour la demande de service

Bluetooth et WSAQUERYSET pour Set Service

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSALookupServiceBegin

WSALookupServiceNext

WSAQUERYSET2

WSASetService