Partager via


Fonction de rappel LPWSPSENDDISCONNECT (ws2spi.h)

La fonction LPWSPSendDisconnect initie l’arrêt de la connexion pour le socket et envoie les données de déconnexion.

Syntaxe

LPWSPSENDDISCONNECT Lpwspsenddisconnect;

int Lpwspsenddisconnect(
  [in]  SOCKET s,
  [in]  LPWSABUF lpOutboundDisconnectData,
  [out] LPINT lpErrno
)
{...}

Paramètres

[in] s

Descripteur identifiant un socket.

[in] lpOutboundDisconnectData

Pointeur vers les données de déconnexion sortantes.

[out] lpErrno

Pointeur vers le code d’erreur.

Valeur retournée

Si aucune erreur ne se produit, LPWSPSendDisconnect retourne zéro. Sinon, une valeur de SOCKET_ERROR est retournée et un code d’erreur spécifique est disponible dans lpErrno.

Code d'erreur Signification
WSAENETDOWN
Le sous-système réseau a échoué.
WSAENOPROTOOPT
Le paramètre lpOutboundDisconnectData n’est pas null et les données de déconnexion ne sont pas prises en charge par le fournisseur de services.
WSAEINPROGRESS
L’appel de sockets Windows est en cours ou le fournisseur de services traite toujours une fonction de rappel.
WSAENOTCONN
Le socket n’est pas connecté (sockets orientés connexion uniquement).
WSAENOTSOCK
Le descripteur n’est pas un socket.
WSAEFAULT
Le paramètre lpOutboundDisconnectData n’est pas totalement contenu dans une partie valide de l’espace d’adressage utilisateur.

Remarques

La fonction LPWSPSendDisconnect est utilisée sur les sockets orientés connexion pour désactiver la transmission et lancer l’arrêt de la connexion avec la transmission de données de déconnexion, le cas échéant.

Une fois cette fonction correctement émise, les envois suivants sont interdits.

Le paramètre lpOutboundDisconnectData , s’il n’est pas null, pointe vers une mémoire tampon contenant les données de déconnexion sortantes à envoyer à la partie distante.

Notez que LPWSPSendDisconnect ne ferme pas le socket et que les ressources attachées au socket ne seront pas libérées tant que LPWSPCloseSocket n’est pas appelé.

Notes

La fonction LPWSPSendDisconnect ne bloque pas, quel que soit le paramètre SO_LINGER sur le socket. Un client SPI Windows Sockets ne doit pas s’appuyer sur la possibilité de réutiliser un socket une fois qu’il a été déconnecté. En particulier, un fournisseur Windows Sockets n’est pas nécessaire pour prendre en charge l’utilisation de LPWSPConnect sur un tel socket.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête ws2spi.h

Voir aussi

LPWSPConnect

LPWSPSocket