WSCInstallNameSpaceEx32, fonction (ws2spi.h)
La fonction WSCInstallNameSpaceEx32 installe un fournisseur d’espaces de noms 32 bits spécifié. Pour les fournisseurs qui sont en mesure de prendre en charge plusieurs espaces de noms, cette fonction doit être appelée pour chaque espace de noms pris en charge, et un identificateur de fournisseur unique doit être fourni à chaque fois.
Syntaxe
INT WSCInstallNameSpaceEx32(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId,
[in] LPBLOB lpProviderSpecific
);
Paramètres
[in] lpszIdentifier
Pointeur vers une chaîne qui identifie le fournisseur associé à l’identificateur global unique (GUID) passé dans le paramètre lpProviderId .
[in] lpszPathName
Pointeur vers une chaîne Unicode qui contient le chemin de chargement de la DLL du fournisseur. Cette chaîne respecte 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] dwNameSpace
Espace de noms pris en charge par ce fournisseur.
[in] dwVersion
Numéro de version du fournisseur.
[in] lpProviderId
Pointeur vers un GUID pour le fournisseur. Ce GUID doit être généré par Uuidgen.exe.
[in] lpProviderSpecific
Objet blob de données spécifique au fournisseur associé à l’entrée d’espace de noms.
Valeur retournée
Si aucune erreur ne se produit, la fonction WSCInstallNameSpaceEx32 retourne NO_ERROR (zéro). Sinon, il retourne SOCKET_ERROR si la fonction échoue et vous devez récupérer le code d’erreur approprié à l’aide de la fonction WSAGetLastError .
Code d'erreur | Signification |
---|---|
La routine appelante ne dispose pas des privilèges suffisants pour installer un espace de noms. | |
Un ou plusieurs arguments ne sont pas valides. | |
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. | |
Un appel système qui ne doit jamais échouer a échoué. | |
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
WSCInstallNameSpaceEx32 est une version strictement 32 bits de WSCInstallNameSpaceEx. Sur un ordinateur 64 bits, tous les appels ne sont pas spécifiquement 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 les appels de fonction 32 bits spécifiques pour fonctionner sur un catalogue strictement 32 bits et préserver la compatibilité. Les définitions et la sémantique des appels 32 bits spécifiques sont les mêmes que leurs équivalents natifs.
Les fonctions de configuration de l’espace de noms n’affectent pas les applications qui sont déjà en cours d’exécution. Les fournisseurs d’espace de nom nouvellement installés ne seront pas visibles par les applications et les modifications apportées à l’état d’activation d’un fournisseur d’espace de noms ne seront pas visibles. Les applications lancées après l’appel à WSCInstallNameSpaceEx32 verront les modifications.
L’objet blob de données spécifique au fournisseur associé à l’entrée d’espace de noms passé dans le paramètre lpProviderInfo peut être interrogé à l’aide de la fonction WSCEnumNameSpaceProvidersEx32 .
Actuellement, le seul fournisseur d’espaces de noms inclus avec Windows qui utilise le paramètre lpProviderInfo est le fournisseur NS_EMAIL. Le format de la mémoire tampon pointée vers le paramètre lpProviderInfo pour un fournisseur d’espace de noms NS_EMAIL est une structure NAPI_PROVIDER_INSTALLATION_BLOB .
La fonction WSCInstallNameSpaceEx32ne peut être appelée que par un utilisateur connecté en tant que membre du groupe Administrateurs. Si WSCInstallNameSpaceEx32 est appelé par un utilisateur qui n’est pas membre du groupe Administrateurs, l’appel de fonction échoue. 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.
Configuration requise
Condition requise | Valeur |
---|---|
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 |