Objetos event (Windows Sockets 2)

A introdução de E/S sobreposta requer um mecanismo para que os aplicativos associem de forma inequívoca solicitações de envio e recebimento às respectivas indicações de conclusão subsequentes. No Windows Sockets 2, isso é feito com objetos de evento modelados após eventos do Windows. Os objetos de evento do Windows Sockets são constructos bastante simples que podem ser criados e fechados, definidos e limpos e aguardados e sondados. Seu utilitário principal é a capacidade de um aplicativo bloquear e aguardar até que um ou mais objetos de evento se tornem definidos.

Os aplicativos usam WSACreateEvent para obter um identificador de objeto de evento que pode ser fornecido como um parâmetro necessário para as versões sobrepostas de chamadas de envio e recebimento ( WSASend, WSASendTo, WSARecv, WSARecvFrom). O objeto de evento, que é limpo quando criado pela primeira vez, é definido pelos provedores de transporte quando a operação de E/S sobreposta associada é concluída (com êxito ou com erros). Cada objeto de evento criado por WSACreateEvent deve ter um WSACloseEvent correspondente para destruí-lo.

Os objetos event também são usados em WSAEventSelect para associar um ou mais eventos de rede FD_XXX a um objeto de evento. Isso é descrito em Notificação assíncrona usando objetos de evento.

Em ambientes de 32 bits, as funções relacionadas ao objeto de evento, incluindo WSACreateEvent, WSACloseEvent, WSASetEvent, WSAResetEvent e WSAWaitForMultipleEvents , são mapeadas diretamente para as funções nativas correspondentes do Windows, usando o mesmo nome de função, mas sem o prefixo WSA.