Multiple Provider Router and Service Provider Interface

The multiple provider router in Windows 95 exports the Win32 WinNet APIs to applications. It provides seamless access to network services and resources, and it supports a way to access a single WinNet16 network driver. It routes incoming network requests to the appropriate network provider, using the same interface whether one or more network providers are installed.

Features common to all networks are implemented once in the multiple provider router, which reduces the code base for each network provider and ensures common behavior among networks. For example, network providers do not implement persistent connections — this feature is implemented in the multiple provider router and is entirely transparent to a network provider.

Windows 95 uses an open, modular service provider interface (SPI) to allow multiple 32-bit network providers to be installed in Windows 95 simultaneously. The service provider interface is a single, well-defined set of functions used by Windows 95 to request network services to browse servers, connect to and disconnect from servers, and so on. The multiple provider router communicates with the network providers using the service provider interface.

The service provider interface provides the needed network services to honor a Windows 95 request for network-specific services. This model is similar to the Windows 95 design for various device driver interfaces: a well-defined set of interfaces used by the operating system, with services provided by a device driver (often written by another vendor) to honor requests. These requests are then passed to the network providers.

The service provider interface enables Microsoft or other network providers to integrate varied network services seamlessly into Windows 95. The service provider interface ensures that all supported networks are identically accessed and managed through Network Neighborhood and other user interface components.