WSAProviderConfigChange, fonction (winsock2.h)

La fonction WSAProviderConfigChange avertit l’application lorsque la configuration du fournisseur est modifiée.

Syntaxe

INT WSAAPI WSAProviderConfigChange(
  [in, out] LPHANDLE                           lpNotificationHandle,
  [in]      LPWSAOVERLAPPED                    lpOverlapped,
  [in]      LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);

Paramètres

[in, out] lpNotificationHandle

Pointeur vers le handle de notification. Si le handle de notification est défini sur NULL (la valeur de handle et non le pointeur lui-même), cette fonction retourne un handle de notification à l’emplacement pointé par lpNotificationHandle.

[in] lpOverlapped

Pointeur vers une structure WSAOVERLAPPED .

[in] lpCompletionRoutine

Type : _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE

Pointeur vers la routine d’achèvement appelée lors de la réception de la notification de modification du fournisseur.

Valeur retournée

Si aucune erreur ne se produit, WSAProviderConfigChange retourne 0. Sinon, une valeur de SOCKET_ERROR est retournée et un code d’erreur spécifique peut être récupéré en appelant WSAGetLastError. Le code d’erreur WSA_IO_PENDING indique que l’opération qui se chevauche a été lancée avec succès et que l’achèvement (et donc l’événement de modification) sera indiqué ultérieurement.

Code d'erreur Signification
WSANOTINITIALISED
Un appel WSAStartup réussi doit se produire avant d’utiliser cette fonction.
WSAENETDOWN
Le sous-système réseau a échoué.
WSA_NOT_ENOUGH_MEMORY
Mémoire disponible insuffisante pour terminer l’opération.
WSA_INVALID_HANDLE
Valeur pointée par le paramètre lpNotificationHandle n’est pas un handle de notification valide.
WSAEOPNOTSUPP
L’environnement actuel du système d’exploitation ne prend pas en charge l’installation ou la suppression du fournisseur sans redémarrage.

Remarques

La fonction WSAProviderConfigChange notifie l’application de l’installation ou de la suppression du fournisseur (transport et espace de noms) dans les environnements d’exploitation Windows qui prennent en charge ce changement de configuration sans nécessiter de redémarrage. Lorsqu’elle est appelée pour la première fois (le paramètre lpNotificationHandle pointe vers le handle NULL ), cette fonction se termine immédiatement et retourne le handle de notification à l’emplacement pointé par lpNotificationHandle qui peut être utilisé dans les appels suivants pour recevoir des notifications d’installation et de suppression du fournisseur. Le deuxième appel et tous les appels suivants se terminent uniquement lorsque les informations du fournisseur changent depuis le moment où l’appel a été effectué. Il est attendu (mais pas obligatoire) que l’application utilise des E/S superposées sur la seconde et les appels ultérieurs à WSAProviderConfigChange, auquel cas l’appel sera retourné immédiatement et l’application sera avertie des modifications de configuration du fournisseur à l’aide du mécanisme d’achèvement choisi par le biais des paramètres d’achèvement superposés spécifiés.

Le handle de notification retourné par WSAProviderConfigChange est semblable à tout handle de système d’exploitation standard qui doit être fermé (quand il n’est plus nécessaire) à l’aide d’un appel Windows CloseHandle .

La séquence d’actions suivante peut être utilisée pour garantir que l’application dispose toujours des informations de configuration de protocole actuelles :

  • Appeler WSAProviderConfigChange
  • Appeler WSAEnumProtocols et/ou WSAEnumNameSpaceProviders
  • Chaque fois que WSAProviderConfigChange notifie l’application d’une modification de la configuration du fournisseur (par le biais d’E/S bloquantes ou superposées), l’ensemble de la séquence d’actions doit être répété.
Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1, Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winsock2.h
Bibliothèque Ws2_32.lib
DLL Ws2_32.dll

Voir aussi

CloseHandle

WSAEnumNameSpaceProviders

WSAEnumProtocols

Winsock Functions

Référence Winsock