Microsoft KB Archive/51088

From BetaArchive Wiki
Knowledge Base


Article ID: 51088

Article Last Modified on 9/30/2003



APPLIES TO

  • Microsoft LAN Manager 1.0
  • Microsoft LAN Manager 1.1
  • Microsoft LAN Manager 2.0 Standard Edition
  • Microsoft LAN Manager 2.1 Standard Edition
  • Microsoft LAN Manager 2.1a
  • Microsoft LAN Manager 2.2 Standard Edition



This article was previously published under Q51088

SUMMARY

This article explains what OS/2 LAN Manager device drivers do and how NDIS relates to OS/2 LAN Manager.

MORE INFORMATION

For two machines to communicate with each other using OS/2 LAN Manager, the network software (that is, device drivers) must translate OS/2 LAN Manager requests into more primitive commands that allow the network hardware (that is, network adapters) to transmit the data over the physical cable connecting the two machines. Similarly, when a message is received from the network adapter, device drivers must translate the message into the response format that the OS/2 LAN Manager understands.

OS/2 LAN Manager issues NetBIOS requests to communicate with the network. NetBIOS is an IBM standard corresponding to a set of higher-level functions or commands that allow a program (such as OS/2 LAN Manager) to access network resources. Network device drivers supply all the services necessary to fulfill these NetBIOS requests.

Network device drivers perform two basic functions to ensure that data transmission is achieved. At the most basic level, the device drivers in the two machines communicate with the network hardware to send and receive messages and ensure the link-level transmission is successful. At a higher level, the device drivers interpret the message transfer in terms of a set of rules or protocol that both machines understand.

Note that the protocol (or "conversation rules") used between the two machines is separate from the actual transmission of the message over the physical connection. For example, someone who speaks only the English "protocol" may hear what a German person is saying, but not understand. On the other hand, two English-speaking persons cannot have a conversation if they cannot hear each other over a "link," such as sound waves passing through air.

A single network device driver can incorporate all necessary protocol and link-level functions required by OS/2 LAN Manager. This type of driver is referred to as a "monolithic" NetBIOS driver, which has the conversation protocol built in with the link-level transmission support. Examples of monolithic drivers that were shipped with OS/2 LAN Manager version 1.0 include the following drivers:

  • Ungermann-Bass drivers (UBXNS.xxx) for the 8-bit and 16-bit PCNIU adapter cards, as well as the PS/2 NIC (UBXNICPU.xxx). The "xxx" extension depends on the MS-DOS or OS/2 version of the driver.
  • Sytek driver (SY.OS2) for the Sytek adapter card (OS/2 only).

These monolithic drivers do not allow an administrator to separate the protocol-level support from the link-level support, and thus do not provide a standard way of mixing and matching different links and protocols (or of supporting multiple links and protocols) in the same machine.

To work around this situation, Microsoft and 3Com Corporation devised the Network Device Interface Specification (NDIS), which describes the OS/2 LAN Manager driver architecture and interfaces to allow an MS-DOS or OS/2 system to support one or more network adapters and protocols. To simplify the job of supporting multiple adapters and protocols, the architecture defines three kinds of drivers:

  • Media Access Control (MAC) drivers, which provide low-level access to network adapters. The main function of a MAC driver is to support transmission and receipt of messages, or "packets," in addition to some basic adapter-management functions.
  • Protocol drivers, which provide higher-level communication services. A typical protocol driver provides a NetBIOS interface at the top (that is, to talk to OS/2 LAN Manager) and an "NDIS interface" at the bottom (that is, to talk to a MAC driver). These drivers are sometimes referred to as transport drivers.
  • The Protocol Manager driver (PROTMAN.xxx, where "xxx" depends on the MS-DOS or OS/2 version). This is a special driver that provides a standard way for multiple MAC and protocol drivers to exchange configuration information and "bind" together into the desired configuration, as defined by the administrator in the PROTOCOL.INI file.

Device drivers written to the interfaces defined in NDIS function concurrently in a system with other networking protocol drivers, and operate correctly with the OS/2 LAN Manager software for MS-DOS and OS/2. While OS/2 LAN Manager version 1.0 includes monolithic NetBIOS-type drivers that support the Ungermann Bass and Sytek adapters, only NDIS- compliant MAC and protocol drivers are shipped with OS/2 LAN Manager version 2.0.

Please refer to the "Microsoft LAN Manager Network Device Drivers Guide" and the Microsoft Knowledge Base for a discussion of drivers that are supported by Microsoft OS/2 LAN Manager.

Examples of MAC and protocol drivers that are available through Microsoft include:

  • 3Com EtherLink MAC drivers that support the EtherLink I (ELNK.OS2), EtherLink II (ELNKII.OS2), and EtherLink/MC (ELNKMC.OS2) adapters.
  • IBM Token-Ring MAC driver (IBMTOK.OS2) which supports the IBM Token-Ring adapters.
  • Microsoft NetBEUI protocol driver (NETBEUI.SYS or NETBEUI.EXE), which supports the IBM NetBEUI protocol.

Microsoft encourages all network vendors to write "NDIS-compliant" MAC drivers and have them certified by Microsoft to ensure that they work with other NDIS-compliant MAC drivers and OS/2 LAN Manager.

When discussing NetBIOS and NDIS, it is useful to refer to the International Standards Organization (ISO) reference model for Open Systems Interconnect (OSI). The OSI model consists of seven layers of protocols. Each layer provides a service to the layer directly below it. The following chart illustrates how OS/2 LAN Manager drivers function in relation to the OSI model:

OSI Model Layer

   --------------  -----------------------------------------------------
                |  |                                                  |
   7 - Applica- |  |        User Applications                         |
       tion     |  |                                                  |
   --------------  -----------------------------------------------------
   --------------  -----------------------------------------------------
                |  |           Operating System                       |
   6 - Presen-  |  |                  &                               |
       tation   |  |       Microsoft OS/2 LAN Manager                 |
   --------------  -----------------------------------------------------
                   ********** NetBIOS Interface **********************
   --------------  --------------- ------------ ----------- ------------
                |  |           | |          | |         | |           |
   5 - Session  |  | Microsoft | | XNS      | | Other   | | Ungermann |
                |  | NetBEUI   | | Protocol | | Protocol| |  Bass     |
   --------------  | Protocol  | | Driver   | | Driver  | | PCNIU     |
   --------------  | Driver    | |          | |         | | Driver    |
                |  |           | |          | |         | |           |
   4 - Trans-   |  |           | |          | |         | |           |
       port     |  |           | |          | |         | |           |
   --------------  |           | |          | |         | |           |
   --------------  |           | |          | |         | |           |
                |  |           | |          | |         | |           |
   3 - Network  |  |           | |          | |         | |           |
                |  |           | |          | |         | |           |
   --------------  ------------- ------------ ----------- |           |
                     ********** NDIS Interface  ********* |           |
   --------------  ------------- ------------ ----------- |           |
                |  | IBM Token | |3Com Ethnt| | Other   | |           |
   2 - Data     |  | Ring MAC  | |  MAC     | | MAC     | |           |
       Link     |  |  Driver   | | Driver   | | Driver  | |           |
   --------------  ------------- ------------ ----------- -------------
   --------------  ------- ------- ------------ ----------- ------------
                |  | TR  | | TR  | | Ethernet | | Other   | | UB PCNIU |
   1 - Physical |  |Adptr| |Adptr| | Adapter  | | Adapter | |   LAN    |
                |  | #1  | | #2  | |          | |         | |  Adapter |
   --------------  ------- ------- ------------ ----------- ------------
                

In the above example, the Ungermann-Bass PCNIU driver (UBXNS.OS2) is an example of a monolithic-type NetBIOS driver, while the 3Com Ethernet driver (such as ELNK.OS2, ELNKII.OS2, and ELNKMC.OS2 drivers) and IBM token-ring driver (IBMTOK.OS2) are examples of NDIS-compliant MAC drivers. The Microsoft NetBEUI driver (NETBEUI.SYS or NETBEUI.EXE) is an example of a protocol driver.

It should be noted that the protocol drivers can be configured to use any NDIS drivers in a "many-to-many relationship." Therefore, it is possible to have a single protocol driver communicate through multiple NDIS drivers, or for multiple protocol drivers to communicate through one NDIS driver.

The Microsoft LAN Manager Protocol Driver (PROTMAN.OS2) is responsible for "binding" the Protocol and NDIS drivers together, as defined by the administrator in the PROTOCOL.INI file. The correct format of the PROTOCOL.INI file is described in the "Microsoft LAN Manager Network Device Drivers Guide." After all device drivers are loaded when CONFIG.SYS is processed, the binding process occurs when NETBIND.EXE is invoked (either by the operator or by the STARTUP.CMD or AUTOEXEC.BAT file). In addition, the LANMAN.INI file's [networks] section must be edited so that OS/2 LAN Manager knows which protocol drivers to communicate with.

Please see the "Microsoft LAN Manager Network Device Drivers Guide" for a description of the PROTOCOL.INI and LANMAN.INI configuration requirements.

Keywords: KB51088