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


функция обратного вызова PFN_WSK_DISCONNECT_EVENT (wsk.h)

Функция обратного вызова событий WskDisconnectEvent уведомляет приложение WSK о том, что удаленное приложение отключило подключение к сокету, ориентированному на подключение.

Синтаксис

PFN_WSK_DISCONNECT_EVENT PfnWskDisconnectEvent;

NTSTATUS PfnWskDisconnectEvent(
  [in, optional] PVOID SocketContext,
  [in]           ULONG Flags
)
{...}

Параметры

[in, optional] SocketContext

Указатель на контекст сокета для сокета, ориентированного на подключение, который был отключен. Приложение WSK предоставило этот указатель на подсистему WSK одним из следующих способов:

  • Он вызвал функцию WskSocket для создания сокета.
  • Он вызвал функцию WskSocketConnect для создания сокета.
  • Она вызвала функцию WskAccept для принятия сокета в качестве входящего подключения.
  • Его функция обратного вызова события WskAcceptEvent была вызвана для принятия сокета в качестве входящего подключения.

[in] Flags

Значение ULONG, содержащее побитовое или сочетание следующих флагов:

WSK_FLAG_ABORTIVE

Удаленное приложение выполнило прерывание отключения сокета. Если этот флаг не установлен, удаленное приложение выполнило корректное отключение сокета.

WSK_FLAG_AT_DISPATCH_LEVEL

Подсистема WSK называется функцией обратного вызова событий WskDisconnectEvent в IRQL = DISPATCH_LEVEL. Если этот флаг не задан, подсистема WSK могла вызвать функцию обратного вызова события WskDisconnectEvent при любом irQL <= DISPATCH_LEVEL.

Возвращаемое значение

Функция обратного вызова событий WskDisconnectEvent приложения WSK всегда должна возвращать STATUS_SUCCESS.

Комментарии

Подсистема WSK вызывает функцию обратного вызова событий WSK-приложения WSKDisconnectEvent , когда сокет, ориентированный на подключение, отключен удаленным приложением, только если функция обратного вызова события была ранее включена с параметром сокета SO_WSK_EVENT_CALLBACK . Дополнительные сведения о включении функций обратного вызова событий сокета см. в разделе Включение и отключение функций обратного вызова событий.

Если удаленное приложение выполнило корректное отключение сокета, дальнейшие данные из сокета не будут получены. Однако приложение WSK по-прежнему может отправлять данные в сокет, пока сокет не будет полностью закрыт удаленным приложением или приложение WSK не вызовет функцию WskDisconnect или функцию WskCloseSocket в сокете.

Если удаленное приложение выполнило прерывание отключения сокета, дальнейшие данные из сокета не будут получены, и никакие другие данные не могут быть отправлены в сокет.

Подсистема WSK вызывает функцию обратного вызова события WskDisconnectEvent приложения WSK в IRQL <= DISPATCH_LEVEL.

Функция обратного вызова событий WskDisconnectEvent приложения WSK не должна ждать завершения других запросов WSK в контексте функций завершения WSK или обратного вызова событий. Обратный вызов может инициировать другие запросы WSK (при условии, что он не тратит слишком много времени на DISPATCH_LEVEL), но не должен ждать их завершения, даже если обратный вызов вызывается в IRQL = PASSIVE_LEVEL.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Windows
Header wsk.h (включая Wsk.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

WSK_CLIENT_CONNECTION_DISPATCH

WskAccept

WskAcceptEvent

WskCloseSocket

WskConnect

WskControlSocket

WskDisconnect

WskSocket

WskSocketConnect