Upcalls exposed by Windows Sockets 2 DLL

This section lists the "upcalls" that service providers may make into the Windows Sockets client. Service providers receive an upcall dispatch table as a parameter to WSPStartup(), and use entries in this table to make the upcalls. Therefore, a client does not need to export its "WPU" functions.

It is not mandatory that providers utilize all of these upcalls. The following table indicates which upcalls must be used and which are optional.

This section describes the "upcalls" that service providers may make into the Windows Sockets client. Service providers receive an upcall dispatch table as a parameter to WSPStartup(), and use entries in this table to make the upcalls. Therefore, a client does not need to export its "WPU" functions.

It is not mandatory that providers utilize all of these upcalls. The following table indicates which upcalls must be used and which are optional.

WPUCloseEvent Close an open event object handle Optional. The provider may use an appropriate OS call instead.
WPUCloseSocketHandle Close a socket handle allocated by the Windows Sockets DLL Required. The WS2_32.DLLneeds to query and/or modify internal state information associated with the socket handle.
WPUCloseThread Close a thread Id for an internal service thread
WPUCompleteOverlappedRequest Deliver overlapped I/O completion notification where the completion mechanism is something other than user mode APC
WPUCreateEvent Create a new event object Optional The provider may use an appropriate OS call instead.
WPUCreateSocketHandle Create a new socket handle for non-IFS providers Required for non-IFS providers. The WS2_32.DLLneeds to query and/or modify internal state information associated with the socket handle.
WPUFDIsSet Check the membership of the specified socket handle Optional. This is just a convenience function that knows how to dig through fd set structures. A provider may need to dig through these structures explicitly anyway.
WPUGetProviderPath Retrieve the DLL path for the specified provider Required. Only the WS2_32.DLLwould know where an adjacent protocol layer (potentially from another vendor) has been installed.
WPUModifyIFSHandle Receive a (possibly) modified IFS handle from the Windows Sockets DLL Required for IFS providers. The WS2_32.DLLneeds to query and/or modify internal state information associated with the socket handle.
WPUPostMessage Performs the standard PostMessage function in a way that maintains backward compatibility Required NT only. Win95 allows post message from kernel mode.
WPUQueryBlockingCallback Return a pointer to a thread's blocking hook function Required There is no corresponding OS functionality. Only the WS2_32.DLLhas the information to accomplish this.
WPUQuerySocketHandleContext Get a socket's context value (non-IFS providers only) Required for non-IFS providers. The WS2_32.DLLneeds to query and/or modify internal state information associated with the socket handle.
WPUQueueApc Queue a user-mode APC to the specified thread Optional. Win 32's QueueUserApc() may also be used.
WPUResetEvent Reset an event object Optional. The provider may use an appropriate OS call instead.
WPUSetEvent Set an event object Optional. The provider may use an appropriate OS call instead.