SO_WSK_EVENT_CALLBACK
A opção de soquete SO_WSK_EVENT_CALLBACK permite que um aplicativo WSK habilite e desabilite as funções de retorno de chamada de evento de um soquete. Essa opção de soquete se aplica apenas a soquetes de escuta, soquetes de datagrama, soquetes orientados à conexão e soquetes básicos que registraram uma interface de extensão para a qual pelo menos uma função de retorno de chamada de evento é definida.
Se um aplicativo WSK usar essa opção de soquete para habilitar ou desabilitar funções de retorno de chamada de evento em um soquete de escuta ou em um soquete de datagrama, ele deverá fazer isso depois que o soquete tiver sido associado a um endereço de transporte local.
Se um aplicativo WSK usar essa opção de soquete para habilitar ou desabilitar funções de retorno de chamada de evento em um soquete orientado à conexão, ele deverá fazê-lo depois que o soquete tiver sido conectado a um endereço de transporte remoto.
Para habilitar ou desabilitar funções de retorno de chamada de evento em um soquete, um aplicativo WSK chama a função WskControlSocket com os parâmetros a seguir.
Parâmetro | Valor |
---|---|
RequestType |
WskSetOption |
ControlCode |
SO_WSK_EVENT_CALLBACK |
Level |
SOL_SOCKET |
InputSize |
sizeof(WSK_EVENT_CALLBACK_CONTROL) |
Inputbuffer |
Um ponteiro para uma estrutura de WSK_EVENT_CALLBACK_CONTROL |
OutputSize |
0 |
OutputBuffer |
NULO |
OutputSizeReturned |
NULO |
Um aplicativo WSK não especifica um ponteiro para um IRP ao chamar a função WskControlSocket para habilitar funções de retorno de chamada de evento em um soquete.
Opcionalmente, um aplicativo WSK pode especificar um ponteiro para um IRP ao chamar a função WskControlSocket para desabilitar uma função de retorno de chamada de evento em um soquete.
Quando um aplicativo WSK chama WskControlSocket para desabilitar uma função de retorno de chamada de evento, o subsistema do WSK se comporta da seguinte maneira:
Se não houver chamadas em andamento para a função de retorno de chamada de evento que está sendo desabilitada quando o aplicativo WSK chamar a função WskControlSocket , a função de retorno de chamada de evento será desabilitada e a função WskControlSocket retornará STATUS_SUCCESS. Se o aplicativo WSK especificar um IRP, o IRP será concluído com êxito status.
Se houver chamadas em andamento para a função de retorno de chamada de evento que está sendo desabilitada quando o aplicativo WSK chamar a função WskControlSocket e o aplicativo WSK especificar um IRP, a função WskControlSocket retornará STATUS_PENDING. O subsistema WSK desabilita a função de retorno de chamada de evento e conclui o IRP depois que todas as chamadas em andamento para a função de retorno de chamada de evento retornaram.
Se houver chamadas em andamento para a função de retorno de chamada de evento que está sendo desabilitada quando o aplicativo WSK chamar a função WskControlSocket e o aplicativo WSK não especificar um IRP, a função WskControlSocket retornará STATUS_EVENT_PENDING. O subsistema WSK desabilita a função de retorno de chamada de evento depois que todas as chamadas em andamento para a função de retorno de chamada de evento forem retornadas.
Ao habilitar ou desabilitar qualquer uma das funções de retorno de chamada de evento WSK padrão, um aplicativo WSK define o membro NpiId da estrutura WSK_EVENT_CALLBACK_CONTROL como um ponteiro para o identificador da NPI (Interface de Programação de Rede) do WSK, NPI_WSK_INTERFACE_ID.
Ao habilitar ou desabilitar quaisquer funções de retorno de chamada para uma interface de extensão, um aplicativo WSK define o membro NpiId da estrutura WSK_EVENT_CALLBACK_CONTROL como um ponteiro para o identificador de NPI para essa interface de extensão.
Ao habilitar funções de retorno de chamada de evento, um aplicativo WSK pode habilitar simultaneamente qualquer combinação das funções de retorno de chamada de evento que são válidas para uma determinada categoria de soquete WSK. O aplicativo WSK habilita simultaneamente essas combinações definindo o membro EventMask da estrutura WSK_EVENT_CALLBACK_CONTROL como um OR bit a bit dos sinalizadores de evento para todas as funções de retorno de chamada de evento que estão sendo habilitadas.
Ao desabilitar funções de retorno de chamada de evento, um aplicativo WSK deve desabilitar cada função de retorno de chamada de evento de forma independente. Um aplicativo WSK desabilita independentemente uma função de retorno de chamada de evento definindo o membro EventMask da estrutura WSK_EVENT_CALLBACK_CONTROL como um OR bit a bit do sinalizador de evento para a função de retorno de chamada de evento que está sendo desabilitada e o sinalizador WSK_EVENT_DISABLE.
A tabela a seguir mostra os sinalizadores de evento válidos para um soquete de escuta.
Sinalizador de evento | Função de retorno de chamada de evento |
---|---|
WSK_EVENT_ACCEPT |
A tabela a seguir mostra os sinalizadores de evento válidos para um soquete de datagrama.
Sinalizador de evento | Função de retorno de chamada de evento |
---|---|
WSK_EVENT_RECEIVE_FROM |
A tabela a seguir mostra os sinalizadores de evento válidos para um soquete orientado à conexão.
Sinalizador de evento | Função de retorno de chamada de evento |
---|---|
WSK_EVENT_DISCONNECT |
|
WSK_EVENT_RECEIVE |
|
WSK_EVENT_SEND_BACKLOG |
Um soquete de escuta pode habilitar automaticamente funções de retorno de chamada de evento em soquetes orientados à conexão que são aceitos pelo soquete de escuta. Um aplicativo WSK habilita automaticamente essas funções de retorno de chamada habilitando as funções de retorno de chamada de evento de soquete orientado à conexão no soquete de escuta. As funções de retorno de chamada de evento serão habilitadas automaticamente em um soquete orientado à conexão aceito somente se o soquete for aceito pela função de retorno de chamada de evento WskAcceptEvent do soquete de escuta. Se o soquete orientado à conexão for aceito pela função WskAccept do soquete de escuta, as funções de retorno de chamada de evento do soquete aceito não serão habilitadas automaticamente.
Depois que as funções de retorno de chamada de evento orientadas à conexão forem habilitadas em um soquete de escuta, elas não poderão ser desabilitadas no soquete de escuta. Se a função de retorno de chamada de evento WskAcceptEvent estiver desabilitada e habilitada novamente em um soquete de escuta, todas as funções de retorno de chamada de evento orientadas à conexão que foram originalmente habilitadas nesse soquete de escuta continuarão a ser aplicadas a todos os soquetes orientados à conexão aceitos pela função de retorno de chamada de evento WskAcceptEvent .
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.
Requisitos
Versão |
Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
parâmetro |
Wsk.h (inclua Wsk.h) |