Die Network Driver Interface Specification ( NDIS ) ist eine Anwendungsprogrammierschnittstelle (API) für Netzwerkschnittstellencontroller (NICs).
Spezifikation
Es wurde gemeinsam von Microsoft und 3Com Corporation entwickelt und wird hauptsächlich unter Microsoft Windows eingesetzt. Die Open-Source- Projekte NDISwrapper und Project Evil ermöglichen jedoch die Verwendung vieler NDIS-kompatibler Netzwerkkarten unter Linux , FreeBSD und NetBSD . Magnussoft ZETA , eine Ableitung von BeOS , unterstützt eine Reihe von NDIS-Treibern.
Die NDIS bildet die Logical Link Control (LLC)-Teilschicht, die die obere Teilschicht der OSI -Sicherungsschicht (Schicht 2) darstellt. Daher fungiert die NDIS als Schnittstelle zwischen der Media Access Control (MAC)-Teilschicht, die die untere Teilschicht der Sicherungsschicht ist, und der Netzwerkschicht (Schicht 3).
Das NDIS ist eine Funktionsbibliothek, die oft als „ Wrapper “ bezeichnet wird und die zugrundeliegende Komplexität der NIC-Hardware verbirgt. Es dient als Standardschnittstelle für Netzwerkprotokolltreiber der Ebene 3 und MAC-Treiber auf Hardwareebene.
Die von den verschiedenen Windows-Versionen unterstützten NDIS-Versionen sind folgende: [ 1 ]
- NDIS 2.0: MS-DOS , Windows für Workgroups 3.1 , OS/2
- NDIS 3.0: Windows for Workgroups 3.11, Windows NT 3.5
- NDIS 3.1: Windows 95
- NDIS 4.0: Windows 95 OSR2, NT 4.0 , Windows CE 3.0
- NDIS 4.1: Windows 98
- NDIS 5.0: Windows 98 SE , Me , 2000
- NDIS 5.1: Windows XP , Server 2003 , Windows CE 4.x, 5.0, 6.0 [ 2 ]
- NDIS 5.2: Windows Server 2003 SP2
- NDIS 6.0: Windows Vista
- NDIS 6.1: Windows Vista SP1, Server 2008 , Windows Embedded Compact 7 , [ 3 ] 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 [ 4 ]
- NDIS 6.51: Windows 10, Version 1511 [ 4 ]
- NDIS 6.60: Windows 10, Version 1607 und Windows Server 2016 [ 5 ]
- NDIS 6.70: Windows 10, Version 1703 [ 6 ]
- NDIS 6.80: Windows 10, Version 1709 [ 7 ]
- NDIS 6.81: Windows 10, Version 1803 [ 8 ]
- NDIS 6.82: Windows 10, Version 1809 und Windows Server 2019 [ 9 ]
- NDIS 6.83: Windows 10, Version 1903 und Windows Server 2022 [ 10 ]
- NDIS 6.84: Windows 10, Version 2004 [ 11 ]
- NDIS 6.85: Windows 10, Version 21H2 [ 12 ]
- NDIS 6.86: Windows 11 , Version 21H2 [ 13 ]
- NDIS 6.87: Windows 11, Version 22H2 [ 14 ]
- NDIS 6.88: Windows Server 2022, Version 23H2 [ 15 ]
- NDIS 6.89: Windows 11, Version 24H2 [ 16 ]
Der vom Netzwerkadapter (NIC) akzeptierte Datenverkehr wird von einem NDIS -Miniport -Treiber [ 17 ] gesteuert , während verschiedene Protokolle, wie z. B. TCP/IP , durch NDIS-Protokolltreiber implementiert werden [ 18 ] . Ein einzelner Miniport kann einem oder mehreren Protokollen zugeordnet sein. Dies bedeutet, dass der eingehende Datenverkehr parallel von mehreren Protokolltreibern empfangen werden kann. Beispielsweise fügt Winpcap einen zweiten Protokolltreiber auf dem ausgewählten Miniport hinzu, um eingehende Pakete zu erfassen. Darüber hinaus ist es möglich, mehrere virtuelle Netzwerkadapter zu simulieren, indem virtuelle Miniport-Treiber implementiert werden, die Datenverkehr von einem einzelnen physischen Netzwerkadapter senden und empfangen. Ein Beispiel für die Verwendung virtueller Miniport-Treiber ist das Hinzufügen virtueller Netzwerkadapter mit jeweils unterschiedlichen VLANs . Da Implementierungen nicht davon ausgehen können, dass andere Treiber dieselben Puffer empfangen, müssen die eingehenden Puffer als schreibgeschützt behandelt werden, und ein Treiber, der den Paketinhalt ändert, muss seine eigenen Puffer zuweisen. NDIS-Miniport-Treiber können auch Windows-Treibermodell- Schnittstellen verwenden, um Netzwerkhardware zu steuern [ 19 ] .
Ein weiterer Treibertyp ist der NDIS-Zwischentreiber. Zwischentreiber befinden sich zwischen der MAC- und der IP-Schicht und können den gesamten vom Netzwerkadapter (NIC) akzeptierten Datenverkehr steuern. In der Praxis implementieren Zwischentreiber sowohl Miniport- als auch Protokollschnittstellen. Der Miniport-Treiber und der Protokolltreiber kommunizieren mit den entsprechenden Miniport- und Protokollschnittstellen im Zwischentreiber. Dieses Design ermöglicht das Hinzufügen mehrerer verketteter Zwischentreiber zwischen Miniport- und Protokolltreiber. Daher können Treiberhersteller nicht davon ausgehen, dass die Schnittstelle, an die sie Datenverkehr senden, vom letzten Treiber in der Kette implementiert wird. Um Anwendungen mit NDIS zu entwickeln, können Beispiele aus dem Windows Driver Kit (WDK) von Microsoft verwendet werden. Das Beispiel „PassThru“ ist ein guter Ausgangspunkt für Zwischentreiber, da es alle für diesen Treibertyp erforderlichen Details implementiert, den Datenverkehr aber einfach an den nächsten Treiber in der Kette weiterleitet.
NDIS 4.1 implementierte WDM- Funktionen. NDIS 5.0 implementierte TCP/IP-Offload-Funktionen. [ 20 ]
Seit Windows 10 Version 2004 existiert ein neues Treiberframework für Netzwerkadapter namens Network Adapter WDF Class Extension ( NetAdapterCx ), das die Treiberentwicklung vereinfachen soll. [ 21 ] Mit Windows 11 wurde das WiFiCx-Framework eingeführt.
Siehe auch
- Offene Datenverbindungsschnittstelle (ODI)
- Einheitliche Treiberschnittstelle (UDI)
- Universelle Netzwerkgeräteschnittstelle (UNDI)
- Neue API
- PC/TCP-Pakettreiber
Referenzen
- ^ „Übersicht der NDIS-Versionen – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 24.03.2020 .
- ^ Netzwerktreiber (Windows Embedded CE 6.0) , 5. Januar 2012
- ^ Neuerungen (Windows Embedded Compact 7) , 14. März 2014
- ^ a b aviviano. „Einführung in NDIS 6.50 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.60 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.70 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.80 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.81 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.82 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.83 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.84 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.85 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano. „Einführung in NDIS 6.86 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
- ^ aviviano (22.05.2024). „Einführung in NDIS 6.87 – Windows-Treiber“ . learn.microsoft.com . Abgerufen am 19.06.2024 .
- ^ aviviano (22.05.2024). „Einführung in NDIS 6.88 – Windows-Treiber“ . learn.microsoft.com . Abgerufen am 19.06.2024 .
- ^ aviviano (22.05.2024). „Einführung in NDIS 6.89 – Windows-Treiber“ . learn.microsoft.com . Abgerufen am 19.06.2024 .
- ^ „Deserialisierte NDIS-Miniport-Treiber – Windows-Treiber“ . 14. März 2023.
- ^ „Einführung in NDIS-Protokolltreiber – Windows-Treiber“ . 14. März 2023.
- ^ „NDIS-Miniport-Treiber mit WDM Lower Edge – Windows-Treiber“ . 14. März 2023.
- ^ Snakefoot (30.10.2007). „NDIS 5 Hardware-Funktionen zur Steigerung der Netzwerkleistung“ . Smallvoid.com . Abgerufen am 08.02.2025 .
- ^ "Netzwerkadapter-WDF-Klassenerweiterung (NetAdapterCx)" . 22. Mai 2024.