Поделиться через


Таблицы диспетчеризации ядра Winsock

Объект socket для сокета Winsock Kernel (WSK) содержит указатель на структуру таблицы диспетчеризации поставщика, которая содержит указатели на функции сокета, поддерживаемые сокетом. Приложение WSK вызывает функции в структуре таблицы диспетчеризации поставщика для выполнения сетевых операций ввода-вывода в сокете. Так как каждая категория сокетов WSK поддерживает разные функции сокетов, сетевой программный интерфейс WSK (NPI) определяет другую структуру таблицы диспетчеризации поставщиков для каждой категории сокета WSK.

Категория сокета Структура таблицы диспетчеризации

Базовый сокет

WSK_PROVIDER_BASIC_DISPATCH

Прослушивание сокета

WSK_PROVIDER_LISTEN_DISPATCH

Сокет datagram

WSK_PROVIDER_DATAGRAM_DISPATCH

Сокет, ориентированный на подключение

WSK_PROVIDER_CONNECTION_DISPATCH

Если приложение WSK использует функции обратного вызова событий для создаваемых сокетов, оно должно предоставлять структуру таблицы диспетчеризации клиента, содержащую указатели на функции обратного вызова событий сокета при создании нового сокета. Так как каждая категория сокета WSK поддерживает свой набор функций обратного вызова событий, NPI WSK определяет другую структуру таблицы диспетчеризации клиентов для каждой категории сокета WSK.

Категория сокета Структура таблицы диспетчеризации

Прослушивание сокета

WSK_CLIENT_LISTEN_DISPATCH

Сокет datagram

WSK_CLIENT_DATAGRAM_DISPATCH

Сокет, ориентированный на подключение

WSK_CLIENT_CONNECTION_DISPATCH

Примечание Базовые сокеты не поддерживают функции обратного вызова событий. Поэтому для базовых сокетов не определена структура таблицы диспетчеризации клиента.