Compartilhar via


Função de retorno de chamada LPWSPENUMNETWORKEVENTS (ws2spi.h)

A função LPWSPEnumNetworkEvents relata ocorrências de eventos de rede para o soquete indicado.

Sintaxe

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

int Lpwspenumnetworkevents(
  [in]  SOCKET s,
  [in]  WSAEVENT hEventObject,
  [out] LPWSANETWORKEVENTS lpNetworkEvents,
  [out] LPINT lpErrno
)
{...}

Parâmetros

[in] s

Descritor que identifica o soquete.

[in] hEventObject

Identificador opcional que identifica um objeto de evento associado a ser redefinido.

[out] lpNetworkEvents

Ponteiro para uma estrutura WSANETWORKEVENTS que é preenchida com um registro de eventos de rede ocorridos e quaisquer códigos de erro associados. A estrutura WSANETWORKEVENTS é definida no texto a seguir.

[out] lpErrno

Ponteiro para o código de erro.

Retornar valor

O valor retornado será zero se a operação tiver sido bem-sucedida. Caso contrário, o valor SOCKET_ERROR será retornado e um número de erro específico estará disponível no lpErrno.

Código do Erro Significado
WSAENETDOWN
O subsistema de rede falhou.
WSAEINVAL
Indica que um dos parâmetros especificados era inválido.
WSAEINPROGRESS
Uma chamada de Bloqueio do Windows Sockets está em andamento ou o provedor de serviços ainda está processando uma função de retorno de chamada.
WSAENOTSOCK
O descritor não é um soquete.

Comentários

Essa função é usada para relatar quais eventos de rede ocorreram para o soquete indicado desde a última invocação dessa função. Destina-se ao uso em conjunto com LPWSPEventSelect e LPWSPAsyncSelect, que associam um objeto de evento a um ou mais eventos de rede. A gravação de eventos de rede começa quando LPWSPEventSelect ou LPWSPAsyncSelect é chamado com um argumento lNetworkEvents diferente de zero e permanece em vigor até que outra chamada correspondente seja feita para LPWSPEventSelect ou LPWSPAsyncSelect com o argumento lNetworkEvents definido como zero.

LPWSPEnumNetworkEvents relata apenas a atividade de rede e os erros indicados por meio de LPWSPEventSelect. Confira as descrições de LPWSPSelect e LPWSPAsyncSelect para descobrir como essas funções relatam erros e atividades de rede.

O registro interno de eventos de rede do soquete é copiado para a estrutura referenciada por lpNetworkEvents, em que o registro interno de eventos de rede é limpo. Se hEventObject não for nulo, o objeto de evento indicado também será redefinido. O provedor do Windows Sockets garante que as operações de copiar o registro de evento de rede, limpá-lo e redefinir qualquer objeto de evento associado sejam atômicas, de modo que a próxima ocorrência de um evento de rede nomeado faça com que o objeto de evento se torne definido. No caso dessa função que retorna SOCKET_ERROR, o objeto de evento associado não é redefinido e o registro de eventos de rede não é limpo.

A estrutura WSANETWORKEVENTS é definida na página de referência WSANETWORKEVENTS .

O membro lNetworkEvents da estrutura WSANETWORKEVENTS indica qual dos eventos de rede FD_XXX ocorreram. A matriz iErrorCode é usada para conter quaisquer códigos de erro associados, com índice de matriz correspondente à posição dos bits de evento em lNetworkEvents. Os identificadores como FD_READ_BIT e FD_WRITE_BIT podem ser usados para indexar a matriz iErrorCode .

Observe que somente os elementos da matriz iErrorCode são definidos que correspondem aos bits definidos no membro lNetworkEvents . Outros membros não são modificados (isso é importante para compatibilidade com versões anteriores com os clientes SPI do Windows Socket 2 que não estão cientes de novos eventos de FD_ROUTING_INTERFACE_CHANGE e FD_ADDRESS_LIST_CHANGE).

Os códigos de erro a seguir podem ser retornados junto com o respectivo evento de rede.

Evento: FD_CONNECT

Código do Erro Significado
WSAEAFNOSUPPORT
Os endereços na família especificada não podem ser usados com este soquete.
WSAECONNREFUSED
Uma tentativa de conexão foi rejeitada com força.
WSAENETUNREACH
A rede não pode ser alcançada através deste host neste momento.
WSAENOBUFS
Nenhum espaço de buffer disponível. O soquete não pode ser conectado.
WSAETIMEDOUT
Uma tentativa de conexão atingiu o tempo limite sem estabelecer uma conexão.

Evento: FD_CLOSE

Código do Erro Significado
WSAENETDOWN
O subsistema de rede falhou.
WSAECONNRESET
A conexão foi redefinida pelo lado remoto.
WSAECONNABORTED
A conexão foi encerrada devido a um tempo limite ou outra falha.

Evento: FD_READ, FD_WRITE, FD_OOB, FD_ACCEPT, FD_QOS, FD_GROUP_QOS, FD_ADDRESS_LIST_CHANGE

Código do Erro Significado
WSAENETDOWN
O subsistema de rede falhou.

Evento: FD_ROUTING_INTERFACE_CHANGE

Código do Erro Significado
WSAENETUNREACH
O destino especificado não é mais acessível.
WSAENETDOWN
O subsistema de rede falhou.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho ws2spi.h

Confira também

LPWSPEventSelect