Fonction WSAGetServiceClassInfoW (winsock2.h)
La fonction WSAGetServiceClassInfo récupère les informations de classe (schéma) relatives à une classe de service spécifiée à partir d’un fournisseur d’espace de noms spécifié.
Syntaxe
INT WSAAPI WSAGetServiceClassInfoW(
[in] LPGUID lpProviderId,
[in] LPGUID lpServiceClassId,
[in, out] LPDWORD lpdwBufSize,
[out] LPWSASERVICECLASSINFOW lpServiceClassInfo
);
Paramètres
[in] lpProviderId
Pointeur vers un GUID qui identifie un fournisseur d’espace de noms spécifique.
[in] lpServiceClassId
Pointeur vers un GUID identifiant la classe de service.
[in, out] lpdwBufSize
En entrée, le nombre d’octets contenus dans la mémoire tampon pointée vers le paramètre lpServiceClassInfo .
En sortie, si la fonction échoue et que l’erreur est WSAEFAULT, ce paramètre spécifie la taille minimale, en octets, de la mémoire tampon pointée vers lpServiceClassInfo nécessaire pour récupérer l’enregistrement.
[out] lpServiceClassInfo
Pointeur vers une structure WSASERVICECLASSINFO qui contient les informations de classe de service du fournisseur d’espace de noms indiqué pour la classe de service spécifiée.
Valeur retournée
La valeur de retour est zéro si WSAGetServiceClassInfo a réussi. Sinon, la valeur SOCKET_ERROR est retournée et un numéro d’erreur spécifique peut être récupéré en appelant WSAGetLastError.
Code d'erreur | Signification |
---|---|
La mémoire était insuffisante pour effectuer l’opération. | |
La routine d’appel ne dispose pas des privilèges suffisants pour accéder aux informations. | |
La mémoire tampon pointée par le paramètre lpServiceClassInfo est trop petite pour contenir un WSASERVICECLASSINFOW. L’application doit passer une mémoire tampon plus grande. | |
L’identificateur de classe de service ou l’identificateur de fournisseur d’espace de noms spécifié n’est pas valide. Cette erreur est retournée si les paramètres lpProviderId, lpServiceClassId, lpdwBufSize ou lpServiceClassInfo ont la valeur NULL. | |
L’opération n’est pas prise en charge pour le type d’objet référencé. Cette erreur est retournée par certains fournisseurs d’espaces de noms qui ne prennent pas en charge l’obtention d’informations de classe de service. | |
Le nom demandé est valide, mais aucune donnée du type requis n'a été trouvée. | |
Le WS2_32.DLL n’a pas été initialisé. L’application doit d’abord appeler WSAStartup avant d’appeler les fonctions windows Sockets. | |
La classe spécifiée est introuvable. |
Remarques
La fonction WSAGetServiceClassInfo récupère les informations de classe de service à partir d’un fournisseur d’espaces de noms. Les informations de classe de service récupérées à partir d’un fournisseur d’espace de noms particulier peuvent ne pas être l’ensemble complet d’informations de classe qui ont été spécifiées lors de l’installation de la classe de service. Les fournisseurs d’espaces de noms individuels sont uniquement requis pour conserver les informations de classe de service applicables aux espaces de noms qu’ils prennent en charge. Pour plus d’informations, consultez la section Structures de données de classe de service.
Notes
L’en-tête winsock2.h définit WSAGetServiceClassInfo comme un 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. Le mélange 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 | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | winsock2.h |
Bibliothèque | Ws2_32.lib |
DLL | Ws2_32.dll |