Share via


fonction WSCInstallProvider64_32 (ws2spi.h)

[**WSCInstallProvider64_32** n’est plus disponible à partir de Windows Vista. Utilisez plutôt WSCInstallProvider ou WSCInstallProviderAndChains.]

La fonction WSCInstallProvider64_32 installe le fournisseur de services de transport spécifié dans les bases de données de configuration système 32 bits et 64 bits sur un ordinateur 64 bits.

Syntaxe

int WSCInstallProvider64_32(
  [in]  LPGUID                    lpProviderId,
  [in]  const WCHAR               *lpszProviderDllPath,
  [in]  const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
  [in]  DWORD                     dwNumberOfEntries,
  [out] LPINT                     lpErrno
);

Paramètres

[in] lpProviderId

Pointeur vers un identificateur global unique (GUID) pour le fournisseur.

[in] lpszProviderDllPath

Pointeur vers une chaîne Unicode qui contient le chemin de chargement de la DLL 64 bits du fournisseur. Cette chaîne observe les règles habituelles pour la résolution de chemin d’accès et peut contenir des chaînes d’environnement incorporées (telles que %SystemRoot%). Ces chaînes d’environnement sont développées lorsque le Ws2_32.dll doit ensuite charger la DLL du fournisseur pour le compte d’une application. Une fois les chaînes d’environnement incorporées développées, le Ws2_32.dll transmet la chaîne obtenue à la fonction LoadLibrary qui charge le fournisseur en mémoire. Pour plus d’informations, consultez LoadLibrary.

[in] lpProtocolInfoList

Pointeur vers un tableau de structures WSAProtocol_Info . Chaque structure définit un protocole, une famille d’adresses et un type de socket pris en charge par le fournisseur.

[in] dwNumberOfEntries

Nombre d’entrées dans le tableau lpProtocolInfoList .

[out] lpErrno

Pointeur vers le code d’erreur si la fonction échoue.

Valeur retournée

Si WSCInstallProvider64_32 réussit, elle retourne zéro. Sinon, il retourne SOCKET_ERROR, et un code d’erreur spécifique est retourné dans le paramètre lpErrno .

Code d'erreur Signification
WSAEFAULT
Un ou plusieurs des arguments ne se trouve pas dans une partie valide de l’espace d’adressage utilisateur.
WSAEINVAL
Un ou plusieurs arguments ne sont pas valides.
WSAENOBUFS
La mémoire n’a pas pu être allouée pour les mémoires tampons.
WSANO_RECOVERY
Une erreur irrécupérable s’est produite. Cette erreur est retournée dans plusieurs conditions, notamment : le fournisseur est déjà installé, l’utilisateur ne dispose pas des privilèges d’administration nécessaires pour écrire dans le registre Winsock ou un échec s’est produit lors de la création ou de l’installation d’une entrée de catalogue.
WSASYSCALLFAILURE
Un appel système qui ne doit jamais échouer a échoué.
WSA_NOT_ENOUGH_MEMORY
La mémoire disponible était insuffisante. Cette erreur est retournée quand la mémoire est insuffisante pour allouer une nouvelle entrée de catalogue.

Remarques

WSCInstallProvider64_32 est une version de base de la fonction WSCInstallProviderAndChains64_32 qui n’installe qu’un seul fournisseur de services de transport. WSCInstallProvider64_32 pouvez être utilisé pour installer un protocole de base, un protocole en couches ou une chaîne de protocole. Si un fournisseur de services en couches est installé, WSCInstallProviderAndChains64_32 doit être utilisé, car cette fonction permet d’installer un protocole en couches et une ou plusieurs chaînes de protocoles avec un seul appel de fonction. Pour effectuer le même travail à l’aide de WSCInstallProvider64_32 nécessite plusieurs appels de fonction pour installer chaque composant de fournisseur de services.

Windows Sockets (Winsock) 2 prend en charge la notion de protocole en couches. Un protocole en couches implémente uniquement des fonctions de communication de niveau supérieur tout en s’appuyant sur une pile de transport sous-jacente pour l’échange réel de données avec un point de terminaison distant. Un exemple de protocole en couches serait une couche de sécurité qui ajoute un protocole au processus d’établissement de la connexion pour effectuer l’authentification et établir un schéma de chiffrement mutuellement convenu. Un tel protocole de sécurité nécessite généralement les services d’un protocole de transport fiable sous-jacent, tel que TCP ou SPX. Le terme protocole de base fait référence à un protocole tel que TCP ou SPX qui est entièrement capable d’effectuer des communications de données avec un point de terminaison distant. Le terme protocole en couches est utilisé pour décrire un protocole qui ne peut pas être autonome. Une chaîne de protocole est alors définie comme un ou plusieurs protocoles en couches enchaînés et ancrés par un protocole de base. Un protocole de base a le membre ChainLen de la structure WSAProtocol_Info défini sur BASE_PROTOCOL qui est défini sur 1. Un protocole en couches a le membre ChainLen de la structure WSAPROTOCOL_INFO défini sur LAYERED_PROTOCOL qui est défini sur zéro. Une chaîne de protocole a le membre ChainLen de la structure WSAPROTOCOL_INFO défini sur supérieur à 1.

WSCInstallProvider64_32 est la version 64 bits de WSCInstallProvider qui installe le fournisseur dans les catalogues 32 bits et 64 bits sur les plateformes 64 bits. Autrement dit, sur les plateformes 64 bits, deux catalogues Winsock sont gérés, et les processus 32 bits et 64 bits peuvent charger le fournisseur de transport installé avec cette fonction. Sur les plateformes 64 bits, WSCInstallProvider s’installe uniquement dans le catalogue Winsock 64 bits.

Sur un ordinateur 64 bits, tous les appels qui ne sont pas spécifiquement conçus pour 32 bits (par exemple, toutes les fonctions qui ne se terminent pas par « 32 ») fonctionnent sur le catalogue 64 bits natif. Les processus qui s’exécutent sur un ordinateur 64 bits doivent utiliser WSCInstallProvider64_32 pour fonctionner à la fois sur le catalogue 32 bits et sur le catalogue 64 bits, ce qui préserve la compatibilité. Les définitions et la sémantique des appels 32 bits spécifiques sont les mêmes que leurs équivalents natifs.

Cette routine crée les informations de configuration courantes de Winsock 2 nécessaires pour le fournisseur spécifié. Elle s’applique aux protocoles de base, aux protocoles en couches et aux chaînes de protocoles.

Le paramètre lpProtocolInfoList contient une liste d’entrées de protocole à installer. Les appelants de WSCInstallProvider64_32 sont responsables de la configuration des entrées de protocole appropriées. Le paramètre lpProtocolInfoList ne doit pas avoir la valeur NULL.

Une fois cette routine terminée, les informations de protocole fournies dans lpProtocolInfoList sont retournées par WSAEnumProtocols, WSCEnumProtocols ou WSCEnumProtocols32. N’oubliez pas que dans Windows, seules les instances du Ws2_32.dll créées en appelant WSAStartup une fois cette fonction terminée, incluent les nouvelles entrées dans WSAEnumProtocols, WSCEnumProtocols et WSCEnumProtocols32.

Note La fonction WSAEnumProtocols n’énumère pas d’entrée de protocole en couches alors que WSCEnumProtocols et WSCEnumProtocols32 le font.

 

En cas de réussite, WSCInstallProvider64_32 tente d’alerter toutes les applications intéressées qui se sont inscrites pour la notification de la modification en appelant WSAProviderConfigChange.

La fonction WSCInstallProvider64_32 ne peut être appelée que par un utilisateur connecté en tant que membre du groupe Administrateurs. Si WSCInstallProvider64_32 est appelé par un utilisateur qui n’est pas membre du groupe Administrateurs, l’appel de fonction échoue et WSANO_RECOVERY est retourné dans le paramètre lpErrno . Pour les ordinateurs exécutant Windows Vista ou Windows Server 2008, cette fonction peut également échouer en raison du contrôle de compte d’utilisateur (UAC). Si une application qui contient cette fonction est exécutée par un utilisateur connecté en tant que membre du groupe Administrateurs autre que l’administrateur intégré, cet appel échoue, sauf si l’application a été marquée dans le fichier manifeste avec un paramètre requestedExecutionLevel défini sur requireAdministrator. Si l’application sur Windows Vista ou Windows Server 2008 ne dispose pas de ce fichier manifeste, un utilisateur connecté en tant que membre du groupe Administrateurs autre que l’administrateur intégré doit alors exécuter l’application dans un interpréteur de commandes amélioré en tant qu’administrateur intégré (administrateur RunAs) pour que cette fonction réussisse.

Toute installation de fichier ou configuration spécifique au fournisseur de services doit être effectuée par l’application appelante.

Si la fonction WSCInstallProvider ou WSCInstallProviderAndChains est utilisée, la fonction doit être appelée une fois pour installer le fournisseur dans le catalogue 32 bits et une fois pour installer le fournisseur dans le catalogue 64 bits sur une plateforme 64 bits.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP Professionnel Édition x64 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 Édition x64 [applications de bureau uniquement]
Plateforme cible Windows
En-tête ws2spi.h
Bibliothèque Ws2_32.lib
DLL Ws2_32.dll

Voir aussi

LoadLibrary

Configuration et installation du transport

Fournisseurs de services de transport

WSAEnumProtocols

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider32

WSCEnumProtocols

WSCEnumProtocols32

WSCInstallProvider

WSCInstallProviderAndChains

WSCInstallProviderAndChains64_32