Compartir a través de


Función de devolución de llamada LPWSPENUMNETWORKEVENTS (ws2spi.h)

La función LPWSPEnumNetworkEvents informa de las apariciones de eventos de red para el socket indicado.

Sintaxis

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

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

Parámetros

[in] s

Descriptor que identifica el socket.

[in] hEventObject

Identificador opcional que identifica un objeto de evento asociado que se va a restablecer.

[out] lpNetworkEvents

Puntero a una estructura WSANETWORKEVENTS que se rellena con un registro de eventos de red ocurridos y los códigos de error asociados. La estructura WSANETWORKEVENTS se define en el texto siguiente.

[out] lpErrno

Puntero al código de error.

Valor devuelto

El valor devuelto es cero si la operación se realizó correctamente. De lo contrario, se devuelve el valor SOCKET_ERROR y hay disponible un número de error específico en lpErrno.

Código de error Significado
WSAENETDOWN
Error en el subsistema de red.
WSAEINVAL
Indica que uno de los parámetros especificados no era válido.
WSAEINPROGRESS
Una llamada de Bloqueo de Windows Sockets está en curso o el proveedor de servicios sigue procesando una función de devolución de llamada.
WSAENOTSOCK
El descriptor no es un socket.

Comentarios

Esta función se usa para informar de qué eventos de red se han producido para el socket indicado desde la última invocación de esta función. Está pensado para su uso junto con LPWSPEventSelect y LPWSPAsyncSelect, que asocia un objeto de evento a uno o varios eventos de red. La grabación de eventos de red comienza cuando se llama a LPWSPEventSelect o LPWSPAsyncSelect con un argumento lNetworkEvents distinto de cero y permanece en vigor hasta que se realiza otra llamada correspondiente a LPWSPEventSelect o LPWSPAsyncSelect con el argumento lNetworkEvents establecido en cero.

LPWSPEnumNetworkEvents solo notifica la actividad de red y los errores designados a través de LPWSPEventSelect. Consulte las descripciones de LPWSPSelect y LPWSPAsyncSelect para averiguar cómo esas funciones notifican la actividad y los errores de red.

El registro interno del socket de eventos de red se copia en la estructura a la que hace referencia lpNetworkEvents, donde se borra el registro de eventos de red internos. Si hEventObject no es null, el objeto de evento indicado también se restablece. El proveedor de Windows Sockets garantiza que las operaciones de copiar el registro de eventos de red, borrarlo y restablecer cualquier objeto de evento asociado son atómicos, de modo que la siguiente aparición de un evento de red designado hará que el objeto de evento se establezca. En el caso de que esta función devuelva SOCKET_ERROR, el objeto de evento asociado no se restablece y no se borra el registro de eventos de red.

La estructura WSANETWORKEVENTS se define en la página de referencia de WSANETWORKEVENTS .

El miembro lNetworkEvents de la estructura WSANETWORKEVENTS indica cuál de los eventos de red de FD_XXX se han producido. La matriz iErrorCode se usa para contener los códigos de error asociados, con el índice de matriz correspondiente a la posición de bits de evento en lNetworkEvents. Los identificadores como FD_READ_BIT y FD_WRITE_BIT se pueden usar para indexar la matriz iErrorCode .

Tenga en cuenta que solo se establecen los elementos de la matriz iErrorCode que corresponden a los bits establecidos en el miembro lNetworkEvents . Otros miembros no se modifican (esto es importante para la compatibilidad con versiones anteriores con los clientes SPI de Windows Socket 2 que no son conscientes de los nuevos eventos de FD_ROUTING_INTERFACE_CHANGE y FD_ADDRESS_LIST_CHANGE).

Se pueden devolver los siguientes códigos de error junto con el evento de red correspondiente.

Evento: FD_CONNECT

Código de error Significado
WSAEAFNOSUPPORT
Las direcciones de la familia especificada no se pueden usar con este socket.
WSAECONNREFUSED
Se rechazó con fuerza un intento de conexión.
WSAENETUNREACH
La red no se puede alcanzar desde este host en estos momentos.
WSAENOBUFS
No hay espacio disponible en el búfer. El socket no se puede conectar.
WSAETIMEDOUT
Se agota el tiempo de espera de conexión sin establecer una conexión.

Evento: FD_CLOSE

Código de error Significado
WSAENETDOWN
Error en el subsistema de red.
WSAECONNRESET
El lado remoto ha restablecido la conexión.
WSAECONNABORTED
La conexión se finalizó debido a un tiempo de espera u otro error.

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

Código de error Significado
WSAENETDOWN
Error en el subsistema de red.

Evento: FD_ROUTING_INTERFACE_CHANGE

Código de error Significado
WSAENETUNREACH
El destino especificado ya no es accesible.
WSAENETDOWN
Error en el subsistema de red.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado ws2spi.h

Consulte también

LPWSPEventSelect