Eventos do Kernel winsock
O subsistema WSK (Winsock Kernel) pode notificar de forma assíncrona um aplicativo WSK quando determinados eventos de soquete ocorrem, como quando novos dados são recebidos em um soquete ou quando um soquete é desconectado. Para que um aplicativo WSK seja notificado de forma assíncrona sobre eventos de soquete, o aplicativo WSK deve implementar as funções de retorno de chamada de evento apropriadas e habilitar essas funções de retorno de chamada de evento nos soquetes que ele cria.
Nota Um aplicativo WSK não é necessário para implementar ou usar funções de retorno de chamada de evento. Um aplicativo WSK pode executar a maioria das operações de soquete do WSK chamando as funções de soquete do WSK apropriadas. O único recurso do WSK que requer o uso de funções de retorno de chamada de evento é o modo de aceitação condicional em soquetes de escuta. Para obter mais informações sobre as vantagens e desvantagens entre usar funções do WSK em vez de usar funções de retorno de chamada de evento, consulte Using Winsock Kernel Functions vs. Event Callback Functions.
Cada categoria de soquete WSK dá suporte a um conjunto diferente de eventos de soquete.
Soquetes básicos
Soquetes básicos não dão suporte a eventos de soquete.
Soquetes de escuta
Evento | Função de retorno de chamada de evento |
---|---|
Uma conexão de entrada foi aceita. |
|
Uma solicitação de conexão de entrada chegou. |
|
Uma solicitação de conexão de entrada foi descartada. |
* Aplica-se somente a soquetes de escuta que têm o modo de aceitação condicional habilitado. Para obter mais informações sobre como usar o modo de aceitação condicional com soquetes de escuta, consulte Escutando e aceitando conexões de entrada.
soquetes de datagrama
Evento | Função de retorno de chamada de evento |
---|---|
Um ou mais novos datagramas foram recebidos. |
Soquetes orientados para conexão
Evento | Função de retorno de chamada de evento |
---|---|
Novos dados foram recebidos. |
|
O soquete foi desconectado. |
|
O tamanho ideal da lista de pendências de envio foi alterado. |
Quando um aplicativo WSK cria um soquete, as funções de retorno de chamada de evento do soquete são desabilitadas por padrão. Um aplicativo WSK deve habilitar as funções de retorno de chamada de evento de um soquete para que o subsistema WSK chame as funções de retorno de chamada de evento do soquete quando ocorrerem eventos de soquete. Para obter mais informações sobre como habilitar e desabilitar as funções de retorno de chamada de evento de um soquete, consulte Habilitando e desabilitando funções de retorno de chamada de evento.
Se um aplicativo WSK registrar uma interface de extensão para um soquete, a interface de extensão poderá dar suporte a eventos adicionais. Para obter mais informações sobre como registrar uma interface de extensão para um soquete, consulte Registrando uma interface de extensão.
O subsistema do WSK também pode notificar um aplicativo WSK de eventos que não são específicos de um soquete específico. Para que um aplicativo WSK seja notificado sobre esses eventos, o aplicativo WSK deve implementar uma função de retorno de chamada de evento WskClientEvent . Atualmente, não há eventos definidos que não sejam específicos para um soquete específico. A função de retorno de chamada de evento WskClientEvent de um aplicativo WSK está sempre habilitada e não pode ser desabilitada.
As funções de retorno de chamada de evento de um aplicativo WSK não devem aguardar a conclusão de outras solicitações do WSK no contexto de funções de conclusão do WSK ou retorno de chamada de evento. O retorno de chamada pode iniciar outras solicitações do WSK supondo que ele não gaste muito tempo em DISPATCH_LEVEL ou esgote a pilha de kernel, mas não deve aguardar sua conclusão mesmo quando o retorno de chamada é chamado em IRQL = PASSIVE_LEVEL.