Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Network Driver Interface Specification
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Specification== It was jointly developed by [[Microsoft]] and [[3Com Corporation]] and is mostly used in [[Microsoft Windows]]. However, the [[open-source license|open-source]] [[NDISwrapper]] and [[Project Evil]] [[driver wrapper]] projects allow many NDIS-compliant NICs to be used with [[Linux]], [[FreeBSD]] and [[NetBSD]]. [[magnussoft ZETA]], a derivative of [[BeOS]], supports a number of NDIS drivers. The NDIS forms the [[logical link control]] (LLC) sublayer, which is the upper sublayer of the [[OSI model|OSI]] [[data link layer]] (layer 2). Therefore, the NDIS acts as the interface between the [[media access control]] (MAC) sublayer, which is the lower sublayer of the data link layer, and the [[network layer]] (layer 3). The NDIS is a library of functions often referred to as a "[[driver wrapper|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:<ref>{{Cite web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/overview-of-ndis-versions|title=Overview of NDIS versions - Windows drivers|website=docs.microsoft.com|language=en-us|access-date=2020-03-24}}</ref> * NDIS 2.0: [[MS-DOS]], [[Windows 3.1x|Windows for Workgroups 3.1]], [[OS/2]] * NDIS 3.0: Windows for Workgroups 3.11 * NDIS 3.1: [[Windows 95]] * NDIS 4.0: Windows 95 OSR2, [[Windows NT 4.0|NT 4.0]], [[Windows CE 3.0]] * NDIS 4.1: [[Windows 98]] * NDIS 5.0: [[Windows 98 SE]], [[Windows Me|Me]], [[Windows 2000|2000]] * NDIS 5.1: [[Windows XP]], [[Windows Server 2003|Server 2003]], [[Windows CE]] 4.x, 5.0, 6.0<ref>{{Citation|title=Network Drivers (Windows Embedded CE 6.0)| date=5 January 2012 |url=http://msdn.microsoft.com/en-us/library/ee484851(v=winembedded.60).aspx}}</ref> * NDIS 5.2: Windows Server 2003 SP2 * NDIS 6.0: [[Windows Vista]] * NDIS 6.1: Windows Vista SP1, [[Windows Server 2008|Server 2008]], [[Windows Embedded Compact 7]],<ref>{{Citation|title=What's New (Windows Embedded Compact 7)| date=14 March 2014 |url=http://msdn.microsoft.com/en-us/library/gg154234(v=winembedded.70).aspx}}</ref> Windows Embedded Compact 2013 * NDIS 6.20: [[Windows 7]], [[Server 2008 R2]] * NDIS 6.30: [[Windows 8]], [[Windows Server 2012]] * NDIS 6.40: [[Windows 8.1]], [[Windows Server 2012 R2]] * NDIS 6.50: [[Windows 10]], version 1507<ref name=":0">{{Cite web |last=aviviano |title=Introduction to NDIS 6.50 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-50 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.51: Windows 10, version 1511<ref name=":0" /> * NDIS 6.60: Windows 10, version 1607 and [[Windows Server 2016]]<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.60 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-60 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.70: Windows 10, version 1703<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.70 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-70 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.80: Windows 10, version 1709<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.80 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-80 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.81: Windows 10, version 1803<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.81 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-81 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.82: Windows 10, version 1809 and [[Windows Server 2019]]<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.82 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-82 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.83: Windows 10, version 1903 and [[Windows Server 2022]]<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.83 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-83 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.84: Windows 10, version 2004<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.84 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-84 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.85: Windows 10, version 21H2<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.85 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-85 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.86: [[Windows 11]], version 21H2<ref>{{Cite web |last=aviviano |title=Introduction to NDIS 6.86 - Windows drivers |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-86 |access-date=2022-07-12 |website=docs.microsoft.com |language=en-us}}</ref> * NDIS 6.87: Windows 11, version 22H2<ref>{{Cite web |last=aviviano |date=2024-05-22 |title=Introduction to NDIS 6.87 - Windows drivers |url=https://learn.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-87 |access-date=2024-06-19 |website=learn.microsoft.com |language=en-us}}</ref> * NDIS 6.88: Windows Server 2022, version 23H2<ref>{{Cite web |last=aviviano |date=2024-05-22 |title=Introduction to NDIS 6.88 - Windows drivers |url=https://learn.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-88 |access-date=2024-06-19 |website=learn.microsoft.com |language=en-us}}</ref> * NDIS 6.89: Windows 11, version 24H2<ref>{{Cite web |last=aviviano |date=2024-05-22 |title=Introduction to NDIS 6.89 - Windows drivers |url=https://learn.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-89 |access-date=2024-06-19 |website=learn.microsoft.com |language=en-us}}</ref> The traffic accepted by the NIC is controlled by an NDIS [[Miniport]] Driver<ref>{{Cite web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/deserialized-ndis-miniport-drivers|title = Deserialized NDIS Miniport Drivers - Windows drivers| date=14 March 2023 }}</ref> while various protocols, such as [[Internet Protocol Suite|TCP/IP]], are implemented by NDIS Protocol Drivers.<ref>{{Cite web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-protocol-drivers|title = Introduction to NDIS Protocol Drivers - Windows drivers| date=14 March 2023 }}</ref> 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, [[pcap|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]]. 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]] interfaces to control network hardware.<ref>{{Cite web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/network/ndis-miniport-drivers-with-a-wdm-lower-edge|title = NDIS Miniport Drivers with a WDM Lower Edge - Windows drivers| date=14 March 2023 }}</ref> 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 [[Windows Driver Model|WDM]] features. NDIS 5.0 has implemented TCP/IP offload features.<ref> {{Cite web |last=Snakefoot |date=2007-10-30 |title=NDIS 5 hardware features that increases network performance |url=https://smallvoid.com/article/winnt-ndis5-network-features.html |access-date=2025-02-08 |website=Smallvoid.com |language=en}}</ref> 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.<ref>{{Cite web|date=22 May 2024|title=Network Adapter WDF Class Extension (NetAdapterCx)|url=https://learn.microsoft.com/en-us/windows-hardware/drivers/netcx/}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)