The Windows 98 modular network provider interface, as described in this section, supports concurrent communication with several different networks. For example, a computer can have simultaneous connections to computers running Windows 98 peer resource sharing services, to servers for Windows NT and NetWare networks.
In addition to the Windows 98 network client and peer sharing components, Windows 98 supports upgrading from several different third-party network clients. For a list of these clients, see Chapter 14, "Introduction to Networking Configuration."
Most of these network clients can be installed along with protected-mode Windows 98 networking components. Windows 98 does not include the supporting files for these networks; you must obtain them from the network vendor. For more information about these network clients, see Chapter 17, "Windows 98 on Third-Party Networks."
Multiple network support in Windows 98 consists of these components, as described in the following sections:
Figure 29.4 shows the architecture for multiple network support.
Figure 29.4 Multiple network support in Windows 98
The Win32 WinNet interface in Windows 98 provides an API that software developers can use to create single versions of applications that run unmodified on different networks. Applications that use Win32 APIs can take full advantage of all Windows 98 performance enhancement features. Win32-based applications can utilize multitasking, Win32 APIs, long file name support, separate message queues, and memory protection. Each Win32-based application runs in its own fully protected, private address space, preventing it from causing the operating system or other applications to fail and preventing interference from errors generated by other applications.
The Win32 WinNet interface is the successor to the WinNet16 interface introduced in Windows 3.0 and enhanced in Windows 3.1.
The expanded WinNet API set includes the following:
The multiple provider router in Windows 98 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, reducing the code base for each network provider and ensuring 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 98 uses an open, modular service provider interface (SPI) to allow multiple 32-bit network providers to be installed in Windows 98 simultaneously. The service provider interface is a single, well-defined set of functions used by Windows 98 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 98 request for network-specific services. This model is similar to the Windows 98 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 98. The service provider interface ensures that all supported networks are identically accessed and managed through Network Neighborhood and other user interface components.
Windows 98 uses an open, modular network provider interface to allow multiple network support simultaneously. Key benefits of the network provider interface architecture are the following:
The network provider API calls are used by applications to request network services. Windows 98 passes a network provider call to the appropriate network provider, which then supplies the requested network service.
The network provider is a network-specific driver that implements the service provider interface call from the multiple provider router. The functions provided include authenticating users when they access a network server, managing passwords, adding or removing server connections, and browsing network resources.
Windows 98 includes the following network providers:
Windows 98 also supports any number of other 32-bit network providers, which must be supplied by other network vendors.
The Windows 98 system logon is an example of a network service provided by the network provider interface. Each network provider can provide a unique logon dialog box to suit the needs of its network server security model. After the logon is validated by the requested server, this information is passed back to Windows 98, which can then use this password to unlock any network resource linked to the logon validation. In this way, Windows 98 can accommodate the various ways that network servers provide their services, yet still offer a consistent user interface.
For example, the following summarizes the internal processes when a user double-clicks the Entire Network icon in Network Neighborhood:
Because of the network provider support in Windows 98, users can specify server name strings in a drive connection dialog box using the syntax to which they are accustomed. A network provider knows how to correctly interpret the syntax of its own server name strings. The server name string is the syntax used by a particular network operating system to specify a shared disk resource. Microsoft network-compatible networks use the universal naming convention (UNC) format (\\server_name\share_name).
However, because the network provider knows how to interpret server name strings, users who are accustomed to using the NetWare server syntax (server_name/volume_name:directory_name) can type such server names wherever required in Windows 98 to access NetWare server resources. The Windows 98 user interface and the net command also support UNC names for connecting to NetWare resources.
The network provider that supports Microsoft networks (Msnp32.dll) provides access to SMB-based Microsoft network resources using the Windows 98 user interface, such as Windows Explorer, Network Neighborhood, Control Panel, and other Windows-based applications.
As Figure 29.5 shows, Msnp32.dll provides the Microsoft network-specific dialog boxes (such as the Windows NT domain logon dialog box) and code to resolve a service provider interface call from the multiple provider router to a call to Client for Microsoft Networks.
Figure 29.5 Network provider for Microsoft networks
Notice that there are three arrows, two going through IFS Manager and one going directly to Client for Microsoft Networks.
The network provider supports the following functions on Microsoft networks:
Figure 29.6 shows the network provider that supports NetWare networks. The network provider (Nwnp32.dll and its support library, Nwnet32.dll) provides access to NCP-based NetWare network resources using Windows Explorer, Network Neighborhood, Control Panel, and other Windows-based applications.
Figure 29.6 Network provider for NetWare networks
The network provider supports the following functions on NetWare networks:
The WinNet16 interface, shown in Figure 29.7, is the earlier set of network-independent APIs included in Windows 3.1 and Windows 95. WinNet16 provides such simple functionality as connecting to a drive letter or redirecting a printer port to a network printer. Windows 98 provides support for using a single WinNet16 driver.
Figure 29.7 WinNet16 interface
If a network vendor provides a WinNet16 network driver developed for Windows 3.1 but has not written a 32-bit network provider and file system driver for Windows 95 or Windows 98, using the WinNet16 interface and Winnet16.dll is the only way to support that network in Windows 98. The WinNet16 driver that currently works with Windows 95 can be used without modification under Windows 98, using the Winnet16.dll.
If Windows 98 Setup detects a Windows 95 or Windows 3.1 installation that uses a WinNet16 network driver and there is no 32-bit network provider available, Windows 98 Setup keeps the 16-bit network driver in place and provides network functionality with the 16-bit network driver installed as the primary network.
Figure 29.8 shows an example of multiple networks. In this example, the user has installed two Windows 98 network clients (Client for Microsoft Networks and Client for NetWare Networks) and has also installed support for a 32-bit Banyan VINES client.
Figure 29.8 Network drive connection request with multiple networks installed
Banyan VINES uses the StreetTalk syntax (item@group@organization) to specify file service names. When the multiple provider router receives a request to connect to docs@marketing@corp from a network drive connection dialog box in Windows 98, the multiple provider router submits the request to all installed network providers. The Banyan VINES network provider, Vnsnet32.dll, queries StreetTalk to identify the path as a Banyan object. Then the network provider passes the connection request to the VINES file system driver.