WSAGetServiceClassInfoA, fonction (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’espaces de noms spécifié.
Syntaxe
INT WSAAPI WSAGetServiceClassInfoA(
[in] LPGUID lpProviderId,
[in] LPGUID lpServiceClassId,
[in, out] LPDWORD lpdwBufSize,
[out] LPWSASERVICECLASSINFOA lpServiceClassInfo
);
Paramètres
[in] lpProviderId
Pointeur vers un GUID qui identifie un fournisseur d’espaces de noms spécifique.
[in] lpServiceClassId
Pointeur vers un GUID identifiant la classe de service.
[in, out] lpdwBufSize
Lors de l’entrée, le nombre d’octets contenus dans la mémoire tampon pointée par 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 de retour
La valeur de retour est égale à zéro si le 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 n’a pas suffisamment de privilèges 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 lelpProviderId |
|
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 sur la classe de service. | |
Le nom demandé est valide, mais aucune donnée du type demandé n’a été trouvée. | |
Le WS2_32.DLL n’a pas été initialisé. L’application doit d’abord appeler WSAStartup avant d’appeler des fonctions Windows Sockets. | |
La classe spécifiée est introuvable. |
Remarques
La fonction WSAGetServiceClassInfo récupère les informations de classe de service d’un fournisseur d’espaces de noms. Les informations de classe de service récupérées à partir d’un fournisseur d’espaces de noms particulier peuvent ne pas être l’ensemble complet d’informations de classe 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.
Note
L’en-tête winsock2.h définit WSAGetServiceClassInfo comme 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | winsock2.h |
bibliothèque | Ws2_32.lib |
DLL | Ws2_32.dll |