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.
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