In Windows 95, applications can control network printers and print jobs generically, regardless of the type of network that is running on the computer along with the application. This is done by routing printer requests to an installable translation layer, called a Network Print Provider (NPP), that converts the requests from the generic Win32 format to a vendor-specific form that can be used by the network or device.
Network hardware and software vendors must supply an NPP to manage communication between their network and the Win32 printing API. The NPP converts Win32 structures, commands and queries to forms that can be understood by the network the NPP supports and makes the appropriate network-specific print API calls. The NPP then converts the results of the API call to a form usable by Win32.
A Windows 95 workstation can run more that one print provider simultaneously. In fact, local printing support is implemented by a provider, the Local Print Provider, so even on a computer that is running only one network, two print providers are running. Additional Network Print Providers can also be running on this same computer.
Multiple print providers are supported via a routing mechanism, the Print Request Router (PRR), which is similar to the Multiple Network Router (MNR) used by network service providers. Calls that do not explicitly specify a handle to an open printer are handled by the PRR by passing the request to each print provider in turn until one accepts the request or all providers have failed.