Winsock Kernel Dispatch Tables

The socket object for a Winsock Kernel (WSK) socket contains a pointer to a provider dispatch table structure that contains function pointers to the socket functions supported by the socket. A WSK application calls the functions in the provider dispatch table structure to perform network I/O operations on the socket. Because each WSK socket category supports a different set of socket functions, the WSK Network Programming Interface (NPI) defines a different provider dispatch table structure for each category of WSK socket.

Socket category Dispatch table structure

Basic socket

WSK_PROVIDER_BASIC_DISPATCH

Listening socket

WSK_PROVIDER_LISTEN_DISPATCH

Datagram socket

WSK_PROVIDER_DATAGRAM_DISPATCH

Connection-oriented socket

WSK_PROVIDER_CONNECTION_DISPATCH

If a WSK application uses event callback functions for the sockets that it creates, it must provide a client dispatch table structure that contains function pointers to the socket's event callback functions whenever it creates a new socket. Because each WSK socket category supports a different set of event callback functions, the WSK NPI defines a different client dispatch table structure for each category of WSK socket.

Socket category Dispatch table structure

Listening socket

WSK_CLIENT_LISTEN_DISPATCH

Datagram socket

WSK_CLIENT_DATAGRAM_DISPATCH

Connection-oriented socket

WSK_CLIENT_CONNECTION_DISPATCH

Note  Basic sockets do not support any event callback functions. Therefore, no client dispatch table structure is defined for basic sockets.