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 |
---|---|
Le sous-système réseau a échoué. | |
Indique que l’un des paramètres spécifiés n’était pas valide. | |
Un appel Windows Sockets bloquant est en cours ou le fournisseur de services traite toujours une fonction de rappel. | |
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 |
---|---|
Impossible d'utiliser les adresses figurant dans la famille spécifiée avec ce socket. | |
Une tentative de connexion a été rejetée de force. | |
Le réseau ne peut pas être atteint à partir de cet hôte en ce moment. | |
Aucune zone tampon disponible. Impossible de connecter le socket. | |
Une tentative de connexion a expiré sans établir de connexion. |
Événement : FD_CLOSE
Code d'erreur | Signification |
---|---|
Le sous-système réseau a échoué. | |
La connexion a été réinitialisée par le côté distant. | |
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 |
---|---|
Le sous-système réseau a échoué. |
Événement : FD_ROUTING_INTERFACE_CHANGE
Code d'erreur | Signification |
---|---|
La destination spécifiée n’est plus accessible. | |
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 |