Eventi kernel Winsock
Il sottosistema Winsock Kernel (WSK) può notificare in modo asincrono un'applicazione WSK quando si verificano determinati eventi socket, ad esempio quando vengono ricevuti nuovi dati in un socket o quando un socket è stato disconnesso. Affinché un'applicazione WSK riceva una notifica asincrona degli eventi socket, l'applicazione WSK deve implementare le funzioni di callback eventi appropriate e abilitare tali funzioni di callback eventi nei socket creati.
Nota Un'applicazione WSK non è necessaria per implementare o usare le funzioni di callback degli eventi. Un'applicazione WSK può eseguire la maggior parte delle operazioni del socket WSK chiamando le funzioni del socket WSK appropriate. L'unica funzionalità WSK che richiede l'uso delle funzioni di callback eventi è la modalità di accettazione condizionale nei socket in ascolto. Per altre informazioni sui vantaggi e sugli svantaggi tra l'uso di funzioni WSK rispetto all'uso delle funzioni di callback degli eventi, vedere Uso di Funzioni kernel Winsock e 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 socket.
Socket in ascolto
Evento | Funzione di callback dell'evento |
---|---|
È stata accettata una connessione in ingresso. |
|
È arrivata una richiesta di connessione in ingresso. |
|
È stata eliminata una richiesta di connessione in ingresso. |
* Si applica solo ai socket in ascolto che hanno la modalità di accettazione condizionale abilitata. Per altre informazioni sull'uso della modalità di accettazione condizionale con socket di ascolto, vedere Ascolto e accettazione delle connessioni in ingresso.
Socket di datagrammi
Evento | Funzione di callback dell'evento |
---|---|
Sono stati ricevuti uno o più nuovi datagrammi. |
Socket orientati alla connessione
Evento | Funzione di callback dell'evento |
---|---|
Sono stati ricevuti nuovi dati. |
|
Il socket è stato disconnesso. |
|
La dimensione del backlog di invio ideale è cambiata. |
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 per consentire al sottosistema WSK di chiamare 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 inviare una notifica a un'applicazione WSK di eventi che non sono specifici di un socket specifico. Affinché un'applicazione WSK riceva una notifica di questi eventi, l'applicazione WSK deve implementare una funzione di callback degli eventi WskClientEvent . Attualmente non sono presenti eventi definiti che non sono specifici di un socket specifico. La funzione di callback dell'evento WskClientEvent dell'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 completamento o callback eventi di WSK. Il callback può avviare altre richieste WSK presupponendo che non spenda troppo tempo in DISPATCH_LEVEL o esaurire lo stack del kernel, ma non deve attendere il completamento anche quando il callback viene chiamato in IRQL = PASSIVE_LEVEL.