本部分介绍 SAN 服务提供商不需要实现的 Windows 套接字 SPI 的功能。 这些函数在 Ws2spi.h 中定义。
WSPAddressToString
Windows 套接字开关使用 TCP/IP 提供程序将 SOCKADDR 结构的所有组件转换为表示套接字 IP 地址的人类可读数值字符串。
WSPAsyncSelect
Windows 套接字交换机在内部使用其会话协议来处理套接字的网络事件的通知(如有必要)。
WSPCancelBlockingCall
Windows 套接字开关在内部处理正在阻止请求的取消。 因此,它永远不会取消对 SAN 服务提供商 DLL 的阻止调用。 Windows 套接字开关可以:
通过关闭 SAN 套接字取消未完成的连接请求。 SAN 服务提供商 DLL 应中止连接请求。
如果交换机在内部缓冲该数据,或者等待这些请求在 RDMA 传输到应用程序缓冲区或从应用程序缓冲区传输,则取消未完成的发送和接收请求。 对于长时间的 RDMA 传输,交换机可以完全关闭连接。
Microsoft Windows SDK 中的 Windows 套接字 SPI 文档警告说,如果取消阻止调用,应用程序不能依赖于正在保留的连接。 在这种情况下,在取消阻止请求后保证在套接字上成功的唯一调用 WSPCloseSocket。
WSPGetPeerName 当交换机与 WSPConnect 调用中的对等方建立连接时,Windows 套接字交换机将缓存对等方的 IP 地址,或者接受与 WSPAccept 调用中的对等方的连接。 如果需要,该开关会将此缓存值提供给应用程序。
WSPGetSockName 当交换机将地址与 WSPBind 调用中的套接字关联时,Windows 套接字交换机会缓存套接字的本地 IP 地址,或者接受与 WSPAccept 调用中的对等方的连接。 如果需要,该开关会将此缓存值提供给应用程序。
WSPJoinLeaf Windows 套接字开关专门使用 TCP/IP 提供程序来处理多点会话。
WSPRecvDisconnect Windows 套接字开关在内部处理套接字上的数据接收终止,并检索来自远程方的任何传入断开连接数据。
WSPRecvFrom 当前版本的 Windows 套接字直通不支持处理使用用户数据报协议(UDP)语义接收数据报的 SAN 服务提供商。 因此,Windows 套接字交换机在连接的套接字上调用 SAN 服务提供商的 WSPRecv 函数,以接收具有传输控制协议(TCP)语义的流数据。
WSPSelect Windows 套接字交换机在内部与 TCP/IP 提供程序合作使用其会话协议来确定套接字的状态(如有必要)。
WSPSendDisconnect Windows 套接字交换机在内部处理套接字连接的终止,并将断开连接数据发送到远程方。
WSPSendTo 当前版本的 Windows 套接字直通不支持处理使用用户数据报协议 (UDP) 语义发送数据报的 SAN 服务提供商。 因此,Windows 套接字交换机在连接的套接字上调用 SAN 服务提供商的 WSPSend 函数,以使用传输控制协议(TCP)语义发送流数据。
WSPShutdown Windows 套接字开关在内部禁用套接字上的数据的接收和传输。
WSPStartup Windows 套接字开关不调用 WSPStartup 来启动 SAN 服务提供商的作。 该开关改用 SAN 服务提供商的 WSPStatupEx 函数。
WSPStringToAddress Windows 套接字开关使用 TCP/IP 提供程序将表示套接字的 IP 地址的人类可读数值字符串转换为适合传递给采用此类结构的 Windows 套接字例程的套接字地址结构(SOCKADDR)。