функция обратного вызова 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 |