Eventi del kernel Winsock

Il sottosistema WSK (Winsock Kernel) può notificare in modo asincrono a un'applicazione WSK quando si verificano determinati eventi socket, ad esempio quando vengono ricevuti nuovi dati su un socket o quando un socket è stato disconnesso. Affinché un'applicazione WSK venga notificata in modo asincrono agli eventi socket, l'applicazione WSK deve implementare le funzioni di callback degli eventi appropriate e abilitare tali funzioni di callback degli eventi nei socket creati.

Nota Un'applicazione WSK non è necessaria per implementare o usare funzioni di callback degli eventi. Un'applicazione WSK può effettuare la maggior parte delle operazioni relative ai socket WSK chiamando le funzioni appropriate. L'unica funzionalità WSK che richiede l'uso delle funzioni di callback degli eventi è la modalità di accettazione condizionata nei socket in ascolto. Per ulteriori informazioni sui vantaggi e sugli svantaggi tra l'uso di funzioni WSK e l'uso di funzioni di callback degli eventi, vedere Uso delle funzioni del Winsock Kernel rispetto alle funzioni di callback degli eventi.

Ogni categoria di socket WSK supporta un set diverso di eventi socket.

Socket di base

I socket di base non supportano eventi di socket.

Socket in ascolto

Evento Funzione di callback degli eventi

È stata accettata una connessione in ingresso.

WskAcceptEvent

È arrivata una richiesta di connessione in ingresso.

WskInspectEvent

È stata eliminata una richiesta di connessione in ingresso.

WskAbortEvent

* Si applica solo ai socket in ascolto che hanno la modalità di accettazione condizionale abilitata. Per ulteriori informazioni sull'uso della modalità di accettazione condizionata con socket in ascolto, vedere Ascolto e accettazione di connessioni in entrata.

Socket di datagrammi

Evento Funzione di callback degli eventi

Sono stati ricevuti uno o più nuovi datagrammi.

WskReceiveFromEvent

Socket orientati alla connessione

Evento Funzione di callback degli eventi

Sono stati ricevuti nuovi dati.

WskReceiveEvent

Il socket è stato disconnesso.

WskDisconnectEvent

La dimensione ideale del backlog di invio è cambiata.

WskSendBacklogEvent

Quando un'applicazione WSK crea un socket, le funzioni di callback degli eventi del socket vengono disabilitate per impostazione predefinita. Un'applicazione WSK deve abilitare le funzioni di callback degli eventi di un socket affinché il sottosistema WSK chiami le funzioni di callback degli eventi del socket quando si verificano eventi socket. Per altre informazioni sull'abilitazione e la disabilitazione delle funzioni di callback degli eventi di un socket, vedere Abilitazione e disabilitazione delle funzioni di callback degli eventi.

Se un'applicazione WSK registra un'interfaccia di estensione per un socket, l'interfaccia di estensione potrebbe supportare eventi aggiuntivi. Per altre informazioni sulla registrazione di un'interfaccia di estensione per un socket, vedere Registrazione di un'interfaccia di estensione.

Il sottosistema WSK può anche notificare a un'applicazione WSK eventi che non sono specifici di un socket specifico. Affinché un'applicazione WSK venga notificata di questi eventi, l'applicazione WSK deve implementare una funzione di callback dell'evento WskClientEvent . Attualmente non sono definiti eventi che non sono specifici di un socket specifico. La funzione di callback dell'evento WskClientEvent di un'applicazione WskClientEvent è sempre abilitata e non può essere disabilitata.

Le funzioni di callback degli eventi di un'applicazione WSK non devono attendere il completamento di altre richieste WSK nel contesto delle funzioni di callback di eventi o di completamento WSK. Il callback può avviare altre richieste WSK a condizione che non trascorra troppo tempo a DISPATCH_LEVEL o esaurisca lo stack del kernel, ma non deve attendere il loro completamento nemmeno quando il callback viene chiamato a IRQL = PASSIVE_LEVEL.