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 |
---|---|
Un appel WSAStartup réussi doit se produire avant d’utiliser cette fonction. | |
Le sous-système réseau a échoué. | |
Mémoire disponible insuffisante pour terminer l’opération. | |
Valeur pointée par le paramètre lpNotificationHandle n’est pas un handle de notification valide. | |
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é.
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 |