Condividi tramite


Funzione di callback LPWSPENUMNETWORKEVENTS (ws2spi.h)

La funzione LPWSPEnumNetworkEvents segnala occorrenze di eventi di rete per il socket indicato.

Sintassi

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

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

Parametri

[in] s

Descrittore che identifica il socket.

[in] hEventObject

Handle facoltativo che identifica un oggetto evento associato da reimpostare.

[out] lpNetworkEvents

Puntatore a una struttura WSANETWORKEVENTS compilata con un record di eventi di rete verificatisi e a tutti i codici di errore associati. La struttura WSANETWORKEVENTS è definita nel testo seguente.

[out] lpErrno

Puntatore al codice di errore.

Valore restituito

Il valore restituito è zero se l'operazione ha avuto esito positivo. In caso contrario, il valore SOCKET_ERROR viene restituito e un numero di errore specifico è disponibile in lpErrno.

Codice di errore Significato
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAEINVAL
Indica che uno dei parametri specificati non è valido.
WSAEINPROGRESS
Una chiamata windows Sockets bloccata è in corso o il provider di servizi sta ancora elaborando una funzione di callback.
WSAENOTSOCK
Il descrittore non è un socket.

Commenti

Questa funzione viene usata per segnalare gli eventi di rete che si sono verificati per il socket indicato dall'ultima chiamata di questa funzione. È destinato all'uso insieme a LPWSPEventSelect e LPWSPAsyncSelect, che associano un oggetto evento a uno o più eventi di rete. La registrazione degli eventi di rete inizia quando LPWSPEventSelect o LPWSPAsyncSelect viene chiamato con un argomento nonzero lNetworkEvents e rimane in vigore fino a quando non viene eseguita un'altra chiamata corrispondente a LPWSPEventSelect o LPWSPAsyncSelect con lNetworkEvents argomento impostato su zero.

LPWSPEnumNetworkEvents segnala solo attività di rete ed errori designati tramite LPWSPEventSelect. Vedere le descrizioni di LPWSPSelect e LPWSPAsyncSelect per scoprire come tali funzioni segnalano attività e errori di rete.

Il record interno del socket degli eventi di rete viene copiato nella struttura a cui fa riferimento lpNetworkEvents, a cui viene cancellato il record degli eventi di rete interna. Se hEventObject non è null, viene reimpostato anche l'oggetto evento indicato. Il provider Windows Sockets garantisce che le operazioni di copia del record dell'evento di rete, la cancellazione e la reimpostazione di qualsiasi oggetto evento associato siano atomiche, in modo che l'occorrenza successiva di un evento di rete nominato causerà l'impostazione dell'oggetto evento. Nel caso di questa funzione che restituisce SOCKET_ERROR, l'oggetto evento associato non viene reimpostato e il record di eventi di rete non viene cancellato.

La struttura WSANETWORKEVENTS è definita nella pagina di riferimento WSANETWORKEVENTS.

Il membro lNetworkEvents della struttura WSANETWORKEVENTS indica quale degli eventi di rete FD_XXX si sono verificati. La matrice iErrorCode viene usata per contenere eventuali codici di errore associati, con indice di matrice corrispondente alla posizione dei bit di evento in lNetworkEvents. Gli identificatori come FD_READ_BIT e FD_WRITE_BIT possono essere usati per indicizzare la matrice iErrorCode .

Si noti che solo gli elementi della matrice iErrorCode sono impostati che corrispondono ai bit impostati nel membro lNetworkEvents . Gli altri membri non vengono modificati (questo è importante per la compatibilità con le versioni precedenti con i client SPI di Windows Socket 2 che non sono consapevoli di nuovi FD_ROUTING_INTERFACE_CHANGE e FD_ADDRESS_LIST_CHANGE eventi).

I codici di errore seguenti possono essere restituiti insieme al rispettivo evento di rete.

Evento: FD_CONNECT

Codice di errore Significato
WSAEAFNOSUPPORT
Impossibile utilizzare gli indirizzi della famiglia specificata con questo socket.
WSAECONNREFUSED
Un tentativo di connessione è stato rifiutato forzatamente.
WSAENETUNREACH
Impossibile raggiungere la rete da questo host in questo momento.
WSAENOBUFS
Nessuno spazio di buffer disponibile. Impossibile connettere il socket.
WSAETIMEDOUT
Tentativo di connessione in timeout senza stabilire una connessione.

Evento: FD_CLOSE

Codice di errore Significato
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAECONNRESET
La connessione è stata reimpostata dal lato remoto.
WSAECONNABORTED
La connessione è stata terminata a causa di un timeout o di un altro errore.

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

Codice di errore Significato
WSAENETDOWN
Il sottosistema di rete non è riuscito.

Evento: FD_ROUTING_INTERFACE_CHANGE

Codice di errore Significato
WSAENETUNREACH
La destinazione specificata non è più raggiungibile.
WSAENETDOWN
Il sottosistema di rete non è riuscito.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ws2spi.h

Vedi anche

LPWSPEventSelect