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 值,该值包含以下标志的组合的按位 OR:

WSK_FLAG_ABORTIVE

远程应用程序执行了套接字的中止断开连接。 如果未设置此标志,远程应用程序将正常断开套接字。

WSK_FLAG_AT_DISPATCH_LEVEL

WSK 子系统在 IRQL = DISPATCH_LEVEL调用 WskDisconnectEvent 事件回调函数。 如果未设置此标志,则 WSK 子系统可能在任何 IRQL <= DISPATCH_LEVEL调用了 WskDisconnectEvent 事件回调函数。

返回值

WSK 应用程序的 WskDisconnectEvent 事件回调函数必须始终返回STATUS_SUCCESS。

注解

仅当远程应用程序断开面向连接的套接字时,WSK 子系统才调用 WSK 应用程序的 WskDisconnectEvent 事件回调函数,前提是事件回调函数以前是使用 SO_WSK_EVENT_CALLBACK 套接字选项启用的。 有关启用套接字的事件回调函数的详细信息,请参阅 启用和禁用事件回调函数

如果远程应用程序正常断开了套接字,则不会从套接字收到进一步的数据。 但是,WSK 应用程序仍可以将数据发送到套接字,直到套接字被远程应用程序完全关闭,或者 WSK 应用程序调用套接字上的 WskDisconnect 函数或 WskCloseSocket 函数。

如果远程应用程序执行了套接字的中止断开连接,则不会从套接字接收进一步的数据,也不能将进一步的数据发送到套接字。

WSK 子系统在 IRQL <= DISPATCH_LEVEL调用 WSK 应用程序的 WskDisconnectEvent 事件回调函数。

WSK 应用程序的 WskDisconnectEvent 事件回调函数不得等待 WSK 完成或事件回调函数上下文中的其他 WSK 请求完成。 回叫可以启动其他 WSK 请求 (假定它不会在DISPATCH_LEVEL) 花费太多时间,但即使回调在 IRQL = PASSIVE_LEVEL 调用,也不得等待其完成。

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
目标平台 Windows
标头 wsk.h (包括 Wsk.h)
IRQL <= DISPATCH_LEVEL

另请参阅

WSK_CLIENT_CONNECTION_DISPATCH

WskAccept

WskAcceptEvent

WskCloseSocket

WskConnect

WskControlSocket

WskDisconnect

WskSocket

WskSocketConnect