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 ]

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

Referenzen

  1. ^ „Übersicht der NDIS-Versionen – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 24.03.2020 .
  2. ^ Netzwerktreiber (Windows Embedded CE 6.0) , 5. Januar 2012
  3. ^ Neuerungen (Windows Embedded Compact 7) , 14. März 2014
  4. ^ a b aviviano. „Einführung in NDIS 6.50 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  5. ^ aviviano. „Einführung in NDIS 6.60 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  6. ^ aviviano. „Einführung in NDIS 6.70 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  7. ^ aviviano. „Einführung in NDIS 6.80 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  8. ^ aviviano. „Einführung in NDIS 6.81 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  9. ^ aviviano. „Einführung in NDIS 6.82 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  10. ^ aviviano. „Einführung in NDIS 6.83 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  11. ^ aviviano. „Einführung in NDIS 6.84 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  12. ^ aviviano. „Einführung in NDIS 6.85 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  13. ^ aviviano. „Einführung in NDIS 6.86 – Windows-Treiber“ . docs.microsoft.com . Abgerufen am 12.07.2022 .
  14. ^ aviviano (22.05.2024). „Einführung in NDIS 6.87 – Windows-Treiber“ . learn.microsoft.com . Abgerufen am 19.06.2024 .
  15. ^ aviviano (22.05.2024). „Einführung in NDIS 6.88 – Windows-Treiber“ . learn.microsoft.com . Abgerufen am 19.06.2024 .
  16. ^ aviviano (22.05.2024). „Einführung in NDIS 6.89 – Windows-Treiber“ . learn.microsoft.com . Abgerufen am 19.06.2024 .
  17. ^ „Deserialisierte NDIS-Miniport-Treiber – Windows-Treiber“ . 14. März 2023.
  18. ^ „Einführung in NDIS-Protokolltreiber – Windows-Treiber“ . 14. März 2023.
  19. ^ „NDIS-Miniport-Treiber mit WDM Lower Edge – Windows-Treiber“ . 14. März 2023.
  20. ^ Snakefoot (30.10.2007). „NDIS 5 Hardware-Funktionen zur Steigerung der Netzwerkleistung“ . Smallvoid.com . Abgerufen am 08.02.2025 .
  21. ^ "Netzwerkadapter-WDF-Klassenerweiterung (NetAdapterCx)" . 22. Mai 2024.