HOME

TheInfoList



OR:

The Network Driver Interface Specification (NDIS) is an
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
(API) for
network interface controller A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter and physical network interface) is a computer hardware component that connects a computer to a computer network. Early network interface ...
s (NICs).


Specification

It was jointly developed by
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
and 3Com Corporation and is mostly used in
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
. However, the open-source NDISwrapper and Project Evil driver wrapper projects allow many NDIS-compliant NICs to be used with
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
and
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
. magnussoft ZETA, a derivative of BeOS, supports a number of NDIS drivers. The NDIS forms the
logical link control In the IEEE 802 reference model of computer networking, the logical link control (LLC) data communication protocol layer is the upper sublayer of the data link layer (layer 2) of the seven-layer OSI model. The LLC sublayer acts as an interface ...
(LLC) sublayer, which is the upper sublayer of the OSI
data link layer The data link layer, or layer 2, is the second layer of the seven-layer OSI model of computer networking. This layer is the protocol layer that transfers data between nodes on a network segment across the physical layer. The data link layer p ...
(layer 2). Therefore, the NDIS acts as the interface between the
media access control In IEEE 802 LAN/MAN standards, the medium access control (MAC), also called media access control, is the layer that controls the hardware responsible for interaction with the wired (electrical or optical) or wireless transmission medium. Th ...
(MAC) sublayer, which is the lower sublayer of the data link layer, and the
network layer In the seven-layer OSI model of computer networking, the network layer is layer 3. The network layer is responsible for packet forwarding including routing through intermediate Router (computing), routers. Functions The network layer provides t ...
(layer 3). The NDIS is a library of functions often referred to as a " wrapper" that hides the underlying complexity of the NIC hardware and serves as a standard interface for level 3 network protocol drivers and hardware level MAC drivers. The NDIS versions supported by various Windows versions are as follows: * NDIS 2.0:
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few op ...
, Windows for Workgroups 3.1,
OS/2 OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
* NDIS 3.0: Windows for Workgroups 3.11 * NDIS 3.1: Windows 95 * NDIS 4.0: Windows 95 OSR2, NT 4.0, Windows CE 3.0 * NDIS 4.1:
Windows 98 Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It was the second operating system in the 9x line, as the successor to Windows 95. It was Software ...
* NDIS 5.0: Windows 98 SE, Me,
2000 2000 was designated as the International Year for the Culture of Peace and the World Mathematics, Mathematical Year. Popular culture holds the year 2000 as the first year of the 21st century and the 3rd millennium, because of a tende ...
* NDIS 5.1:
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
, Server 2003, Windows CE 4.x, 5.0, 6.0 * NDIS 5.2: Windows Server 2003 SP2 * NDIS 6.0:
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
* NDIS 6.1: Windows Vista SP1, Server 2008, Windows Embedded Compact 7, Windows Embedded Compact 2013 * NDIS 6.20:
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
, Server 2008 R2 * NDIS 6.30:
Windows 8 Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012, made available for download via Microsoft ...
, Windows Server 2012 * NDIS 6.40: Windows 8.1, Windows Server 2012 R2 * NDIS 6.50:
Windows 10 Windows 10 is a major release of Microsoft's Windows NT operating system. The successor to Windows 8.1, it was Software release cycle#Release to manufacturing (RTM), released to manufacturing on July 15, 2015, and later to retail on July 2 ...
, version 1507 * NDIS 6.51: Windows 10, version 1511 * NDIS 6.60: Windows 10, version 1607 and Windows Server 2016 * NDIS 6.70: Windows 10, version 1703 * NDIS 6.80: Windows 10, version 1709 * NDIS 6.81: Windows 10, version 1803 * NDIS 6.82: Windows 10, version 1809 and Windows Server 2019 * NDIS 6.83: Windows 10, version 1903 and
Windows Server 2022 Windows Server 2022 is the thirteenth major version of the Windows NT operating system produced by Microsoft to be released under the Windows Server brand name. It was announced at Microsoft's Ignite event from March 2–4, 2021. It was rele ...
* NDIS 6.84: Windows 10, version 2004 * NDIS 6.85: Windows 10, version 21H2 * NDIS 6.86:
Windows 11 Windows 11 is a version of Microsoft's Windows NT operating system, released on October 5, 2021, as the successor to Windows 10 (2015). It is available as a free upgrade for devices running Windows 10 that meet the #System requirements, Windo ...
, version 21H2 * NDIS 6.87: Windows 11, version 22H2 * NDIS 6.88: Windows Server 2022, version 23H2 * NDIS 6.89: Windows 11, version 24H2 The traffic accepted by the NIC is controlled by an NDIS Miniport Driver while various protocols, such as
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
, are implemented by NDIS Protocol Drivers. A single miniport may be associated with one or more protocols. This means that traffic coming into the miniport may be received in parallel by several protocol drivers. For example, Winpcap adds a second protocol driver on the selected miniport in order to capture incoming packets. Furthermore, it is possible to simulate several virtual NICs by implementing virtual miniport drivers that send and receive traffic from a single physical NIC. One example of virtual miniport driver usage is to add virtual NICs, each with a different
VLAN A virtual local area network (VLAN) is any broadcast domain that is partitioned and isolated in a computer network at the data link layer ( OSI layer 2).IEEE 802.1Q-2011, ''1.4 VLAN aims and benefits'' In this context, virtual refers to a ...
. Because implementations cannot assume that other drivers received the same buffers, one must treat the incoming buffers as read-only and a driver that changes the packet content must allocate its own buffers. NDIS Miniport drivers can also use
Windows Driver Model In computing, the Windows Driver Model (WDM) also known at one point as the Win32 Driver Model is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows su ...
interfaces to control network hardware. Another driver type is NDIS Intermediate Driver. Intermediate drivers sit in-between the MAC and IP layers and can control all traffic being accepted by the NIC. In practice, intermediate drivers implement both miniport and protocol interfaces. The miniport driver and protocol driver actually communicate with the corresponding miniport and protocol interfaces that reside in the intermediate driver. This design enables adding several chained intermediate drivers between the miniport and protocol drivers. Therefore, driver vendors cannot assume that the interface that they send traffic to is implemented by the last driver in the chain. In order to write applications using NDIS, one can use samples that accompany Microsoft's Windows Driver Kit (WDK). The "PassThru" sample is a good starting point for intermediate drivers as it implements all the necessary details required in this driver type, but just passes the traffic through to the next driver in the chain. NDIS 4.1 has implemented WDM features. NDIS 5.0 has implemented TCP/IP offload features. Since Windows 10 version 2004, a new driver framework for network adapters was created called Network Adapter WDF Class Extension (''NetAdapterCx'') which is meant to simplify the driver development process.


See also

* Open Data-Link Interface (ODI) * Uniform Driver Interface (UDI) *
Universal Network Device Interface In computing, the Preboot eXecution Environment (PXE; often pronounced as ''pixie''), often called PXE boot (''pixie boot''), is a specification describing a standardized client–server model, client–server environment that booting, boots a ...
(UNDI) * New API * PC/TCP Packet Driver


References


External links


Windows Core Networking

NDIS Drivers

Microsoft MSDN Design Guide
{{Microsoft APIs Microsoft application programming interfaces Computer networking Device drivers