Network Driver Interface Specification
The Network Driver Interface Specification (NDIS) is a specification for network driver architecture that allows transport protocols such as TCP/IP, Native ATM, IPX, and NetBEUI to communicate with an underlying network adapter or other hardware device. The network adapter can then send or receive data over the network. NDIS permits the high-level protocol components to be independent of the network adapter by providing a standard interface to the network protocols. Because Windows 2000 network architecture supports NDIS, it requires that network adapter drivers be written to the NDIS specification.
Windows 2000 NDIS provides both a standard connectionless interface and also defines a connection-oriented interface. Microsoft® Windows NT® version 4.0 network architecture supported traditional connectionless network standards such as Ethernet, Token Ring, and FDDI. Connectionless networking does not negotiate, manage, and maintain a connection before transmitting data. Connectionless networking, also known as a datagram service, is a "best-effort" delivery service. There is no guarantee that messages won't be lost, duplicated or delivered out of order. These services are usually provided by the network protocols if required.
Windows 2000 continues to support traditional connectionless networking, but adds support for connection-oriented mediums, such as Asynchronous Transfer Mode (ATM) and Integrated Services Digital Network (ISDN). In connection-oriented networking, a connection is created and all data is sent in sequence over a virtual circuit. Windows 2000 negotiates connections using a call manager. A call manager is a portion of software that can initiate and maintain connections, creating virtual circuits (VCs) between two network endpoints. Virtual circuits act as conduits for the transmission of data, allowing greater control of bandwidth, latency, delay variation, and sequencing. These services provide greater support for distributed voice, data, and video applications.
Windows 2000 NDIS is implemented by a file called Ndis.sys, referred to as the "NDIS wrapper." The NDIS wrapper is code that surrounds all NDIS device drivers. The NDIS wrapper provides a uniform interface between protocol drivers and NDIS device drivers, and contains supporting routines that make it easier to develop NDIS drivers. NDIS allows an unlimited number of network adapters in a computer and an unlimited number of protocols bound to one or more network adapters.
Figure B.3 shows the NDIS wrapper architecture.
Figure B.3 NDIS Wrapper (Ndis.sys)
The NDIS wrapper defines the way protocols communicate with network adapters. The protocols communicate with the NDIS wrapper rather than the network adapter. This is an example of the modular structure of a layered network model. The network adapter is independent from the transport protocols.