Objets d’événements (Windows Sockets 2)

L’introduction d’E/S superposées nécessite un mécanisme permettant aux applications d’associer sans ambiguïté les demandes d’envoi et de réception à leurs indications d’achèvement ultérieures. Dans Windows Sockets 2, cela s’effectue avec des objets d’événements modélisés après les événements Windows. Les objets d’événements Windows Sockets sont des constructions assez simples qui peuvent être créées et fermées, définies et effacées, et qui attendent et interrogent. Leur utilitaire principal est la possibilité d’une application de bloquer et d’attendre qu’un ou plusieurs objets d’événement deviennent définis.

Les applications utilisent WSACreateEvent pour obtenir un handle d’objet d’événement qui peut ensuite être fourni en tant que paramètre requis pour les versions superposées d’envoi et de réception des appels (WSASend, WSASendTo, WSARecv, WSARecvFrom). L’objet d’événement, qui est effacé lors de la première création, est défini par les fournisseurs de transport lorsque l’opération d’E/S superposée associée s’est terminée (avec succès ou avec des erreurs). Chaque objet d’événement créé par WSACreateEvent doit avoir un WSACloseEvent correspondant pour le détruire.

Les objets d’événement sont également utilisés dans WSAEventSelect pour associer un ou plusieurs événements réseau FD_XXX à un objet d’événement. Cette procédure est décrite dans notification asynchrone à l’aide d’objets d’événements.

Dans les environnements 32 bits, les fonctions liées aux objets d’événement, y compris WSACreateEvent, WSACloseEvent, WSASetEvent, WSAResetEvent, et WSAWaitForMultipleEvents sont directement mappés aux fonctions Windows natives correspondantes, à l’aide du même nom de fonction, mais sans le préfixe WSA.