LPWSPENUMNETWORKEVENTS 回调函数 (ws2spi.h)
LPWSPEnumNetworkEvents 函数报告所指示套接字的网络事件的发生情况。
语法
LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;
int Lpwspenumnetworkevents(
[in] SOCKET s,
[in] WSAEVENT hEventObject,
[out] LPWSANETWORKEVENTS lpNetworkEvents,
[out] LPINT lpErrno
)
{...}
参数
[in] s
标识套接字的描述符。
[in] hEventObject
标识要重置的关联事件对象的可选句柄。
[out] lpNetworkEvents
指向 WSANETWORKEVENTS 结构的指针,该结构填充了发生的网络事件和任何关联的错误代码的记录。 WSANETWORKEVENTS 结构在以下文本中定义。
[out] lpErrno
指向错误代码的指针。
返回值
如果操作成功,则返回值为零。 否则,将返回值SOCKET_ERROR,并且 lpErrno 中提供了特定的错误号。
错误代码 | 含义 |
---|---|
网络子系统发生故障。 | |
:指示指定参数之一无效。 | |
阻止的 Windows 套接字调用正在进行,或者服务提供商仍在处理回调函数。 | |
:描述符不是套接字。 |
注解
此函数用于报告自上次调用此函数以来,所指示的套接字发生了哪些网络事件。 它旨在与 LPWSPEventSelect 和 LPWSPAsyncSelect 结合使用,后者将事件对象与一个或多个网络事件相关联。 当使用非零 lNetworkEvents 参数调用 LPWSPEventSelect 或 LPWSPAsyncSelect 时,网络事件的录制开始生效,直到对 LPWSPEventSelect 或 LPWSPAsyncSelect 或 LPWSPAsyncSelect 进行相应的调用,并将 lNetworkEvents 参数设置为零。
LPWSPEnumNetworkEvents 仅报告通过 LPWSPEventSelect 指定的网络活动和错误。 请参阅 LPWSPSelect 和 LPWSPAsyncSelect 的说明,了解这些函数如何报告网络活动和错误。
套接字的网络事件内部记录将复制到 lpNetworkEvents 引用的结构,随后会清除内部网络事件记录。 如果 hEventObject 为非 null,则指示的事件对象也会重置。 Windows 套接字提供程序保证复制网络事件记录、清除网络事件记录和重置任何关联事件对象的操作是原子的,因此,指定网络事件的下一次出现将导致事件对象设置为 。 如果此函数返回SOCKET_ERROR,则不会重置关联的事件对象,也不会清除网络事件的记录。
WSANETWORKEVENTS 结构在 WSANETWORKEVENTS 参考页上定义。
WSANETWORKEVENTS 结构的 lNetworkEvents 成员指示发生了哪些FD_XXX网络事件。 iErrorCode 数组用于包含任何关联的错误代码,数组索引对应于 lNetworkEvents 中事件位的位置。 FD_READ_BIT 和 FD_WRITE_BIT 等标识符可用于为 iErrorCode 数组编制索引。
请注意,仅设置与 lNetworkEvents 成员中设置的位对应的 iErrorCode 数组的那些元素。 其他成员不会被修改 (这对于向后兼容 Windows 套接字 2 SPI 客户端非常重要,这些客户端不知道新的FD_ROUTING_INTERFACE_CHANGE和FD_ADDRESS_LIST_CHANGE事件) 。
以下错误代码可以连同相应的网络事件一起返回。
事件:FD_CONNECT
错误代码 | 含义 |
---|---|
指定系列中的地址无法与此套接字一起使用。 | |
尝试连接被强行拒绝。 | |
此时不可以从此主机访问该网络。 | |
未提供任何缓冲区空间。 无法连接套接字。 | |
尝试连接超时,但未建立连接。 |
事件:FD_CLOSE
错误代码 | 含义 |
---|---|
网络子系统发生故障。 | |
:此连接已由远端重置。 | |
由于超时或其他故障,连接已终止。 |
事件:FD_READ、FD_WRITE、FD_OOB、FD_ACCEPT、FD_QOS、FD_GROUP_QOS、FD_ADDRESS_LIST_CHANGE
错误代码 | 含义 |
---|---|
网络子系统发生故障。 |
事件:FD_ROUTING_INTERFACE_CHANGE
错误代码 | 含义 |
---|---|
指定的目标不再可访问。 | |
网络子系统发生故障。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | ws2spi.h |