WSAAdvertiseProvider, fonction (ws2spi.h)
La fonction WSAAdvertiseProvider rend un fournisseur d’espace de noms spécifique version 2 disponible pour tous les clients éligibles.
Syntaxe
INT WSAAPI WSAAdvertiseProvider(
[in] const GUID *puuidProviderId,
[in] const LPCNSPV2_ROUTINE pNSPv2Routine
);
Paramètres
[in] puuidProviderId
Pointeur vers l’ID de fournisseur du fournisseur d’espaces de noms à publier.
[in] pNSPv2Routine
Pointeur vers une structure de NSPV2_ROUTINE avec les points d’entrée version 2 du fournisseur de services d’espace de noms pris en charge par le fournisseur.
Valeur retournée
Si aucune erreur ne se produit, WSAProviderCompleteAsyncCall retourne zéro.
Si la fonction échoue, la valeur de retour est SOCKET_ERROR. Pour obtenir des informations d’erreur étendues, appelez WSAGetLastError, qui retourne l’une des valeurs d’erreur étendues suivantes.
Code d'erreur | Signification |
---|---|
La mémoire était insuffisante pour effectuer l’opération. | |
Une erreur interne s’est produite. | |
Un paramètre n’était pas valide. Cette erreur est retournée si les paramètres puuidProviderId ou pNSPv2Routine étaient **NULL**.
Cette erreur est également retournée si les membres NSPv2LookupServiceBegin, NSPv2LookupServiceNextEx ou NSPv2LookupServiceEnd de la structure NSPV2_ROUTINE pointées par le paramètre pNSPv2Routine sont NULL. Un fournisseur d’espace de noms version 2 doit au moins prendre en charge la résolution de noms que cet ensemble minimal de fonctions. |
|
Le fournisseur d’espaces de noms est introuvable pour le paramètre puuidProviderId spécifié. | |
Le Ws2_32.dlln’a pas été initialisé. L’application doit d’abord appeler WSAStartup avant d’appeler les fonctions windows Sockets. |
Remarques
La fonction WSAAdvertiseProvider est utilisée dans le cadre de l’architecture du fournisseur de services d’espace de noms version 2 (NSPv2) disponible sur Windows Vista et versions ultérieures.
Sur Windows Vista et Windows Server 2008, la fonction WSAAdvertiseProvider ne peut être utilisée que pour les opérations sur NS_EMAIL fournisseurs d’espaces de noms.
La fonction WSAAdvertiseProvider publie un instance d’un fournisseur NSPv2 que les clients peuvent rechercher. Si le instance à publier est un instance d’un fournisseur de type application (un fournisseur d’espace de noms où le membre dwProvideType de la structure NAPI_PROVIDER_INSTALLATION_BLOB est ProviderType_Application), le instance de fournisseur publié sera visible par tous les processus clients s’exécutant sous le même utilisateur et dans la même session que l’appelant de WSAAdvertiseProvider.
En général, les fournisseurs NSPv2 sont implémentés dans des processus autres que les applications appelantes. Les fournisseurs NSPv2 ne sont pas activés à la suite de l’activité du client. Chaque application d’hébergement de fournisseur décide quand rendre un fournisseur spécifique disponible ou indisponible en appelant les fonctions WSAAdvertiseProvider et WSAUnadvertiseProvider . L’activité du client entraîne uniquement des tentatives de contact avec le fournisseur, lorsqu’elle est disponible (lorsque le fournisseur d’espace de noms est publié).
La fonction WSAAdvertiseProvider est appelée par toute application qui souhaite rendre un fournisseur spécifique disponible pour tous les clients éligibles (actuellement toutes les applications s’exécutant avec les mêmes informations d’identification que l’application d’hébergement et dans la même session utilisateur).
Un processus peut implémenter et publier plusieurs fournisseurs en même temps. Les sockets Windows gèrent les fournisseurs d’espaces de noms en répartissant les appels vers le bon. Elle masque également les détails de l’interface RPC et traduit les appels interprocesseurs en appels in-process. De sorte que le fournisseur NSPv2 doit uniquement implémenter une table de fonctions de point d’entrée similaire à la structure NSP_ROUTINE utilisée par un fournisseur NSPv1. Un fournisseur NSPv2 n’a pas à se soucier des exigences spécifiques au RPC (par exemple, le marshaling et la sérialisation des données).
L’appelant WSAAdvertiseProvider transmet un pointeur vers une structure NSPV2_ROUTINE dans le paramètre pNSPv2Routine avec les points d’entrée NSPv2 pris en charge par le fournisseur.
La fonction WSAUnadvertiseProvider rend un fournisseur d’espace de noms spécifique non disponible pour les clients.
Spécifications
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | ws2spi.h |
Bibliothèque | Ws2_32.lib |
DLL | Ws2_32.dll |