Fonction de rappel LPNSPLOOKUPSERVICENEXT (ws2spi.h)
La fonction NSPLookupServiceNext est appelée après avoir obtenu un handle à partir d’un appel précédent à NSPLookupServiceBegin afin de récupérer les informations de service demandées.
Le fournisseur transmet une structure WSAQUERYSET dans la mémoire tampon lpqsResults . Le client doit appeler cette fonction jusqu’à ce qu’elle retourne WSA_E_NOMORE, indiquant que tous les WSAQUERYSET ont été retournés.
Syntaxe
LPNSPLOOKUPSERVICENEXT Lpnsplookupservicenext;
INT Lpnsplookupservicenext(
[in] HANDLE hLookup,
[in] DWORD dwControlFlags,
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSAQUERYSETW lpqsResults
)
{...}
Paramètres
[in] hLookup
Handle retourné par l’appel précédent à WSALookupServiceBegin.
[in] dwControlFlags
Indicateurs utilisés pour contrôler l’opération suivante. Actuellement, seule LUP_FLUSHPREVIOUS est définie comme un moyen de gérer un jeu de résultats trop volumineux. Si une application ne peut pas fournir une mémoire tampon suffisamment grande, la définition de LUP_FLUSHPREVIOUS indique au fournisseur d’ignorer le dernier jeu de résultats, qui était trop volumineux, et de passer au jeu suivant pour cet appel.
[in, out] lpdwBufferLength
Taille, en octets, de l’entrée contenue dans la mémoire tampon pointée par lpqsResults. En sortie, si la fonction échoue et que l’erreur est WSAEFAULT, elle contient la taille minimale, en octets à passer pour que l’objet lpqsResults récupère l’enregistrement.
[out] lpqsResults
Pointeur vers un bloc de mémoire qui contiendra, au retour, un jeu de résultats dans une structure WSAQUERYSET .
Valeur retournée
La fonction doit retourner NO_ERROR (zéro) si la routine réussit. Elle doit retourner SOCKET_ERROR (–1) si la routine échoue et doit définir le code d’erreur approprié à l’aide de WSASetLastError.
Code d'erreur | Signification |
---|---|
Un appel à NSPLookupServiceEnd a été effectué pendant le traitement de cet appel. L’appel a été annulé. Les données de la mémoire tampon lpqsResults ne sont pas définies.
Dans Windows Sockets 2, les codes d’erreur en conflit sont définis pour WSAECANCELLED (10103) et WSA_E_CANCELLED (10111). Le code d’erreur WSAECANCELLED sera supprimé dans une version ultérieure et seul WSA_E_CANCELLED restera. Les fournisseurs d’espaces de noms doivent utiliser le code d’erreur WSA_E_CANCELLED pour maintenir la compatibilité avec le plus large éventail possible d’applications. |
|
Il n’y a plus de données disponibles.
Dans Windows Sockets 2, des codes d’erreur en conflit sont définis pour WSAENOMORE (10102) et WSA_E_NO_MORE (10110). Le code d’erreur WSAENOMORE sera supprimé dans une version ultérieure et seul WSA_E_NO_MORE restera. Les fournisseurs d’espaces de noms doivent utiliser le code d’erreur WSA_E_NO_MORE pour maintenir la compatibilité avec le plus large éventail possible d’applications. |
|
Le handle de recherche spécifié n’est pas valide. | |
La mémoire disponible est insuffisante pour effectuer cette opération. | |
La mémoire tampon lpqsResults était trop petite pour contenir un jeu WSAQUERYSET . | |
Un ou plusieurs paramètres ne sont pas valides ou manquants pour ce fournisseur. | |
L'opération n'est pas prise en charge. Cette erreur est retournée si le fournisseur d’espaces de noms n’implémente pas cette fonction. | |
Le nom a été trouvé dans la base de données, mais aucune donnée correspondant aux restrictions spécifiées n’a été trouvée. | |
Le service est inconnu. Le service est introuvable dans l’espace de noms spécifié. |
Remarques
Les dwControlFlags spécifiés dans cette fonction et ceux spécifiés au moment de NSPLookupServiceBegin sont gérés en tant que « restrictions » à des fins de combinaison. Les restrictions sont combinées entre celles de l’heure NSPLookupServiceBegin et celles de NSPLookupServiceNext time. Par conséquent, les indicateurs de NSPLookupServiceNext ne peuvent jamais augmenter la quantité de données retournées au-delà de ce qui a été demandé dans NSPLookupServiceBegin, bien que ce ne soit pas une erreur de spécifier plus ou moins d’indicateurs. Les indicateurs spécifiés dans un NSPLookupServiceNext donné s’appliquent uniquement à cet appel.
Les LUP_FLUSHPREVIOUS et LUP_RES_SERVICE dwControlFlags sont des exceptions à la règle de restrictions combinées (car il s’agit d’indicateurs de comportement au lieu d’indicateurs de « restriction »). Si l’un ou l’autre des indicateurs est utilisé dans NSPLookupServiceNext, ils ont leur effet défini quel que soit le paramètre des mêmes indicateurs dans NSPLookupServiceBegin.
Par exemple, si LUP_RETURN_VERSION est spécifié dans NSPLookupServiceBegin, le fournisseur de services récupère les enregistrements, y compris la version. Si LUP_RETURN_VERSION n’est pas spécifié dans NSPLookupServiceNext, les informations retournées n’incluent pas la version, même si elle était disponible. Aucune erreur n’est générée.
Par exemple, si LUP_RETURN_BLOB n’est pas spécifié dans NSPLookupServiceBegin, mais dans NSPLookupServiceNext, les informations retournées n’incluent pas les données privées. Aucune erreur n’est générée.
Résultats de la requête
Le tableau suivant répertorie WSAQUERYSET et décrit comment les résultats de requête sont représentés dans la structure WSAQUERYSET . Pour plus d’informations, consultez Structures de données liées aux requêtes.Nom du membre WSAQUERYSET | Interprétation du résultat |
---|---|
**dwSize** | Sera défini sur sizeof(WSAQUERYSET). Il est utilisé comme mécanisme de contrôle de version. |
**dwOutputFlags** | L’indicateur **RESULT_IS_ALIAS** indique qu’il s’agit d’un résultat d’alias. |
**lpszServiceInstanceName** | Fait référence à la chaîne qui contient le nom du service. |
**lpServiceClassId** | GUID correspondant à la classe de service. |
**lpVersion** | Référence le numéro de version du service particulier instance. |
**lpszComment** | facultatif. Chaîne de commentaire fournie par le service instance. |
**dwNameSpace** | Espace de noms dans lequel le service instance a été trouvé. |
**lpNSProviderId** | Identifie le fournisseur d’espaces de noms spécifique qui a fourni ce résultat de requête. |
**lpszContext** | Spécifie le point de contexte dans un espace de noms hiérarchique où se trouve le service. |
**dwNumberOfProtocols** | Non défini pour les résultats. |
**lpafpProtocols** | Non définies pour les résultats, toutes les informations de protocole nécessaires se situent dans les structures CSADDR_INFO . |
**lpszQueryString** | Lorsque dwControlFlags inclut **LUP_RETURN_QUERY_STRING**, ce membre retourne le reste non évalué du **lpszServiceInstanceName** spécifié dans la requête d’origine. Par exemple, dans un espace de noms qui identifie les services par des noms hiérarchiques qui spécifient un nom d’hôte et un chemin de fichier dans cet hôte, l’adresse retournée peut être l’adresse de l’hôte et le reste non traité peut être le chemin du fichier. Si **lpszServiceInstanceName** est entièrement analysé et que **LUP_RETURN_QUERY_STRING** est utilisé, ce membre est null ou pointe vers une chaîne de longueur nulle. |
**dwNumberOfCsAddrs** | Indique le nombre d’éléments dans le tableau de structures CSADDR_INFO . |
**lpcsaBuffer** | Pointeur vers un tableau de structures CSADDR_INFO , avec une adresse de transport complète contenue dans chaque élément. |
**lpBlob** | facultatif. Pointeur vers une entité spécifique au fournisseur. |
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] |
Plateforme cible | Windows |
En-tête | ws2spi.h |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour