Freigeben über


Miniporttreiber

Ein NDIS-Miniporttreiber verfügt über zwei grundlegende Funktionen:

  • Verwalten einer Netzwerkschnittstelle Karte (NIC), einschließlich des Sendens und Empfangens von Daten über die NIC.

  • Interfacing mit übergeordneten Treibern, z. B. Filtertreibern, Zwischentreibern und Protokolltreibern.

Ein Miniporttreiber kommuniziert mit seinen NICs und mit übergeordneten Treibern über die NDIS-Bibliothek. Die NDIS-Bibliothek exportiert einen vollständigen Satz von Funktionen (NdisMXxx und andere NdisXxx-Funktionen ), die alle Betriebssystemfunktionen kapseln, die ein Miniporttreiber aufrufen muss. Der Miniporttreiber muss wiederum eine Reihe von Einstiegspunkten (MiniportXxx-Funktionen ) exportieren, die NDIS für eigene Zwecke oder im Auftrag von treibern höherer Ebene aufruft, um auf den Miniporttreiber zuzugreifen.

Hinweis

Weitere Informationen zum NDIS-Treiberstapel und ein Diagramm, das die Beziehung zwischen allen vier NDIS-Treibertypen zeigt, finden Sie unter NDIS-Treiberstapel.

Die folgenden Sende- und Empfangsvorgänge veranschaulichen die Interaktion von Miniporttreibern mit NDIS und mit übergeordneten Treibern:

  • Wenn ein Transporttreiber über ein zu übertragendes Paket verfügt, ruft er eine NdisXxx-Funktion auf, die von der NDIS-Bibliothek exportiert wird. NDIS übergibt das Paket dann an den Miniporttreiber, indem die entsprechende MiniportXxx-Funktion aufgerufen wird, die vom Miniporttreiber exportiert wurde. Der Miniporttreiber leitet das Paket dann zur Übertragung an die NIC weiter, indem er die entsprechenden NdisXxx-Funktionen aufruft.

  • Wenn eine NIC ein Paket empfängt, das an sich selbst adressiert ist, kann sie einen Hardware-Interrupt bereitstellen, der von NDIS oder dem Miniporttreiber der NIC verarbeitet wird. NDIS benachrichtigt den Miniporttreiber der NIC, indem die entsprechende MiniportXxx-Funktion aufgerufen wird. Der Miniporttreiber richtet die Übertragung von Daten von der NIC ein und gibt dann das Vorhandensein des empfangenen Pakets an, um Treiber auf höherer Ebene zu binden, indem er die entsprechende NdisXxx-Funktion aufruft.

Verbindungslose und Connection-Oriented Miniporttreiber

NDIS unterstützt Miniporttreiber sowohl für verbindungslose Umgebungen als auch für verbindungsorientierte Umgebungen.

Verbindungslose Miniporttreiber steuern Netzwerkkarten für verbindungslose Netzwerkmedien, z. B. Ethernet. Verbindungslose Miniporttreiber sind weiter in deserialisierte und serialisierte Treiber unterteilt:

Hinweis Alle NDIS 6.0- und höher-Treiber werden deserialisiert.

  • Deserialisierte Treiber serialisieren den Betrieb ihrer eigenen MiniportXxx-Funktionen und stellen alle eingehenden Sendepakete intern in die Warteschlange. Dies führt zu einer deutlich besseren Vollduplexleistung, vorausgesetzt, dass die kritischen Abschnitte des Treibers (Code, der nur ein einzelner Thread gleichzeitig ausgeführt werden kann) klein gehalten werden.

  • Serialisierte Treiber verlassen sich auf NDIS, um Aufrufe ihrer MiniportXxx-Funktionen zu serialisieren und ihre Sendewarteschlangen zu verwalten.

Verbindungsorientierte Miniporttreiber steuern Netzwerkkarten für verbindungsorientierte Netzwerkmedien, z. B. ISDN. Verbindungsorientierte Miniporttreiber werden immer deserialisiert – sie serialisieren immer den Betrieb ihrer eigenen MiniportXxx-Funktionen und stellen alle eingehenden Sendepakete intern in die Warteschlange.

Ein NDIS-Miniporttreiber kann eine nicht NDIS-Unterkante aufweisen (siehe folgende Abbildung).

Diagramm eines NDIS-Miniporttreibers mit einem nicht NDIS-unteren Rand

Durch seinen Nicht-NDIS-unteren Rand verwendet ein Miniporttreiber die Klassenschnittstelle für einen Bus, z. B. usb (Universal Serial Bus), um ein Gerät auf dem Bus zu steuern. Der Miniporttreiber kommuniziert mit dem Gerät, indem er E/A-Anforderungspakete (IRPs) entweder an den Bus oder direkt an Remotegeräte sendet, die an den Bus angeschlossen sind. Am oberen Rand macht der Miniporttreiber eine Standardmäßige NDIS-Miniporttreiberschnittstelle verfügbar, die es dem Miniporttreiber ermöglicht, mit überlastenden NDIS-Treibern zu kommunizieren.

NDIS Miniport-Treiber

Referenz zum NDIS-Miniporttreiber