Windows Sockets SPI Functions Required for SANs

This section describes the functions of the Windows Sockets SPI that a SAN service provider DLL must supply. These functions are defined in Ws2spi.h and are fully documented in the Windows Sockets Direct Reference section:

WSPAccept
Conditionally accepts a connection for a socket that is listening for connections, based on the return value of a supplied condition function.

WSPBind
Associates the local IP address, or name, of a network interface with a socket. This network interface is serviced by the SAN service provider.

WSPCleanup
Terminates use of the SAN service provider DLL.

WSPCloseSocket
Closes a socket.

WSPConnect
Establishes the connection of a socket to a peer, exchanges connect data, and specifies required quality of service (QoS) based on the supplied flow specification.

WSPDuplicateSocket
Retrieves a WSAPROTOCOL_INFOW structure that can be used to create a new socket descriptor for a shared socket in the context of another process.

WSPEnumNetworkEvents
Reports occurrences of network events for a socket.

WSPEventSelect
Specifies an event object for a socket. This event object is subsequently set by the occurrence of the supplied set of network events.

WSPGetOverlappedResult
Returns the results of an asynchronous (overlapped) operation on a socket. This operation previously indicated that it was pending completion.

WSPGetQOSByName
Initializes a QoS structure based on a named template, or retrieves an enumeration of the available template names.

A SAN service provider DLL that supports QoS must fully implement WSPGetQOSByName. If the SAN service provides does not support QoS, its WSPGetQOSByName function must at least return the error WSAEOPNOTSUPP.

WSPGetSockOpt
Retrieves the current value of an option for a socket.

WSPIoctl
Sets or retrieves operating parameters associated with a socket.

WSPListen
Establishes a socket to listen for incoming connections.

WSPRecv
Receives data on a connected socket.

WSPSend
Sends data on a connected socket.

WSPSetSockOpt
Sets the value of an option for a socket.

WSPSocket
Creates a socket that uses the TCP/IP protocol and asynchronous (overlapped) data transfer.