Windows 95 Network Printer Sharing via NetBIOS

Windows 95 revolutionized home and small office networking by integrating built-in peer-to-peer resource sharing directly into the operating system. Using the NetBIOS API over transport protocols like NetBEUI, TCP/IP, or IPX/SPX, Windows 95 allowed computers to share locally attached parallel or serial printers without requiring a dedicated server operating system like Novell NetWare or Windows NT. This article explains the technical architecture, networking components, and operational flow that enabled local network printer sharing over NetBIOS in Windows 95.

The Network Stack and Architecture

Windows 95 transitioned away from the 16-bit real-mode networking of MS-DOS and Windows for Workgroups to a modular, 32-bit protected-mode network architecture. At the core of resource sharing was the Server Message Block (SMB) protocol, which operated on top of NetBIOS (Network Basic Input/Output System).

NetBIOS served as the software interface for session management and computer name resolution across the local area network (LAN). Each machine was assigned a unique NetBIOS name of up to 15 characters (with a hidden 16th byte reserved for service types). While NetBIOS provided the naming conventions and session abstractions, it required an underlying transport protocol:

  • NetBEUI: The default and most common protocol for small Windows 95 networks, providing lightweight, non-routable communication ideal for local printer sharing.
  • NetBIOS over TCP/IP (NBT): Used for larger networks, mapping NetBIOS names to IP addresses.
  • NWLink: Microsoft's implementation of Novell's IPX/SPX, which also supported NetBIOS framing.

The Role of File and Printer Sharing (VSERVER.VXD)

To share a locally connected printer, users had to install the "File and Printer Sharing for Microsoft Networks" component. Under the hood, this loaded VSERVER.VXD, a 32-bit protected-mode virtual device driver that enabled the machine to act as an SMB server.

When a printer attached to a local port (such as LPT1) was marked as "Shared As," Windows 95 registered the printer's share name over NetBIOS. The host machine would broadcast its available resources across the local subnet, allowing other machines to discover the printer using the built-in Network Neighborhood feature.

Client-Side Connection and Spooling

On the client machine, the connection was managed by the 32-bit network redirector, VREDIR.VXD. Users could connect to a shared printer using Universal Naming Convention (UNC) paths, structured as \\computername\sharename.

Windows 95 also introduced the "Point and Print" feature. When a client connected to a shared printer via NetBIOS, Windows 95 could automatically download and install the required printer drivers from the host machine if compatible drivers were available, eliminating the need to manually install software via floppy disk or CD-ROM.

Once connected, the process of sending a print job across the network functioned through the following steps:

  1. Job Creation: An application on the client PC initiated a print command, passing the data to the Windows 95 32-bit print spooler (SPOOL32.EXE).
  2. Spooling and Redirection: Depending on the driver, the job was rendered as raw printer commands or Enhanced Metafile (EMF) format. The redirector (VREDIR.VXD) intercepted the output destined for the network printer.
  3. Packaging and Transport: The print data was packaged into SMB write requests and passed to the NetBIOS layer. NetBIOS packaged these requests into network frames via NetBEUI or TCP/IP.
  4. Host Processing: The host computer received the frames, and VSERVER.VXD passed the data to the host’s local print spooler.
  5. Output: The host spooler sent the data directly to the local hardware port (such as the standard parallel port), completing the print process.