The Winsock 2 Service Provider Interface (SPI) represents the other side of programming for Winsock (as compared with the Winsock 2 API). On one side of Winsock you have an API, and on the other you have an SPI. Chapters 6 through 13 explained the Winsock 2 API. Winsock 2 is designed around the Windows Open System Architecture (WOSA), which has a standardized API between Winsock and Winsock applications and a standardized SPI between Winsock and Winsock service providers (such as TCP/IP). Figure 14-1 on the following page shows how Ws2_32.dll, the Winsock 2 support dynamic-link library (DLL), is layered between Winsock applications and Winsock service providers. This chapter explains the Winsock 2 SPI in detail. When you finish this chapter, you will understand how to extend the capabilities of Winsock 2 by developing a service provider.