A transport protocol must be properly installed on the system and registered with Windows Sockets to be accessible to an application. The WS2_32.DLL exports a set of functions to facilitate the registration process. This includes creating a new registration and removing an existing one.
When new registrations are created, the caller (that is, the stack vendor's installation script) supplies one or more filled in WSAPROTOCOL_INFO structures containing a complete set of information about the protocol. (See the Welcome To Windows Sockets 2 SPI for information on how this is accomplished.) Any transport stack that is installed this way will be referred to as a Windows Sockets service provider.
The Windows Sockets 2 SDK includes a small Windows applet, SPORDER.EXE, that allows the user to view and modify the order in which service providers are enumerated. By using this SPORDER.EXE, a user can manually establish a particular TCP/IP protocol stack as the default TCP/IP provider if more than one such stack is present.
The SPORDER.EXE applet exports functions from SPORDER.DLL to reorder the service providers. As a result, installation applications can use the interface of SPORDER.DLL to programmatically reorder service providers to suit their needs.