Partager via


LPWSPENUMNETWORKEVENTS, fonction de rappel (ws2spi.h)

La fonction LPWSPEnumNetworkEvents signale les occurrences d’événements réseau pour le socket indiqué.

Syntaxe

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

int Lpwspenumnetworkevents(
  [in]  SOCKET s,
  [in]  WSAEVENT hEventObject,
  [out] LPWSANETWORKEVENTS lpNetworkEvents,
  [out] LPINT lpErrno
)
{...}

Paramètres

[in] s

Descripteur identifiant le socket.

[in] hEventObject

Handle facultatif identifiant un objet d’événement associé à réinitialiser.

[out] lpNetworkEvents

Pointeur vers une structure WSANETWORKEVENTS qui est remplie avec un enregistrement des événements réseau qui se sont produits et tous les codes d’erreur associés. La structure WSANETWORKEVENTS est définie dans le texte suivant.

[out] lpErrno

Pointeur vers le code d’erreur.

Valeur retournée

La valeur de retour est zéro si l’opération a réussi. Sinon, la valeur SOCKET_ERROR est retournée et un numéro d’erreur spécifique est disponible dans lpErrno.

Code d'erreur Signification
WSAENETDOWN
Le sous-système réseau a échoué.
WSAEINVAL
Indique que l’un des paramètres spécifiés n’était pas valide.
WSAEINPROGRESS
Un appel Windows Sockets bloquant est en cours ou le fournisseur de services traite toujours une fonction de rappel.
WSAENOTSOCK
Le descripteur n’est pas un socket.

Remarques

Cette fonction est utilisée pour signaler les événements réseau qui se sont produits pour le socket indiqué depuis le dernier appel de cette fonction. Il est destiné à être utilisé conjointement avec LPWSPEventSelect et LPWSPAsyncSelect, qui associent un objet d’événement à un ou plusieurs événements réseau. L’enregistrement des événements réseau commence lorsque LPWSPEventSelect ou LPWSPAsyncSelect est appelé avec un argument lNetworkEvents différent de zéro et reste en vigueur jusqu’à ce qu’un autre appel correspondant soit effectué à LPWSPEventSelect ou LPWSPAsyncSelect avec l’argument lNetworkEvents défini sur zéro.

LPWSPEnumNetworkEvents signale uniquement l’activité réseau et les erreurs désignées par le biais de LPWSPEventSelect. Consultez les descriptions de LPWSPSelect et LPWSPAsyncSelect pour savoir comment ces fonctions signalent l’activité et les erreurs du réseau.

L’enregistrement interne des événements réseau du socket est copié dans la structure référencée par lpNetworkEvents, où l’enregistrement des événements réseau internes est effacé. Si hEventObject n’est pas null, l’objet d’événement indiqué est également réinitialisé. Le fournisseur Windows Sockets garantit que les opérations de copie de l’enregistrement d’événement réseau, de suppression de celui-ci et de réinitialisation de tout objet d’événement associé sont atomiques, de sorte que la prochaine occurrence d’un événement réseau nommé entraîne la définition de l’objet d’événement. Dans le cas de cette fonction retournant SOCKET_ERROR, l’objet d’événement associé n’est pas réinitialisé et l’enregistrement des événements réseau n’est pas effacé.

La structure WSANETWORKEVENTS est définie sur la page de référence WSANETWORKEVENTS .

Le membre lNetworkEvents de la structure WSANETWORKEVENTS indique les événements réseau FD_XXX qui se sont produits. Le tableau iErrorCode est utilisé pour contenir tous les codes d’erreur associés, avec un index de tableau correspondant à la position des bits d’événement dans lNetworkEvents. Les identificateurs tels que FD_READ_BIT et FD_WRITE_BIT peuvent être utilisés pour indexer le tableau iErrorCode .

Notez que seuls les éléments du tableau iErrorCode sont définis qui correspondent aux bits définis dans le membre lNetworkEvents . Les autres membres ne sont pas modifiés (ceci est important pour la compatibilité descendante avec les clients SPI Windows Socket 2 qui ne sont pas conscients des nouveaux événements FD_ROUTING_INTERFACE_CHANGE et FD_ADDRESS_LIST_CHANGE).

Les codes d’erreur suivants peuvent être retournés avec l’événement réseau respectif.

Événement : FD_CONNECT

Code d'erreur Signification
WSAEAFNOSUPPORT
Impossible d'utiliser les adresses figurant dans la famille spécifiée avec ce socket.
WSAECONNREFUSED
Une tentative de connexion a été rejetée de force.
WSAENETUNREACH
Le réseau ne peut pas être atteint à partir de cet hôte en ce moment.
WSAENOBUFS
Aucune zone tampon disponible. Impossible de connecter le socket.
WSAETIMEDOUT
Une tentative de connexion a expiré sans établir de connexion.

Événement : FD_CLOSE

Code d'erreur Signification
WSAENETDOWN
Le sous-système réseau a échoué.
WSAECONNRESET
La connexion a été réinitialisée par le côté distant.
WSAECONNABORTED
La connexion a été arrêtée en raison d’un délai d’attente ou d’un autre échec.

Événement : FD_READ, FD_WRITE, FD_OOB, FD_ACCEPT, FD_QOS, FD_GROUP_QOS, FD_ADDRESS_LIST_CHANGE

Code d'erreur Signification
WSAENETDOWN
Le sous-système réseau a échoué.

Événement : FD_ROUTING_INTERFACE_CHANGE

Code d'erreur Signification
WSAENETUNREACH
La destination spécifiée n’est plus accessible.
WSAENETDOWN
Le sous-système réseau a échoué.

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

LPWSPEventSelect