Freigeben über


Miniport-Treiber

Ein NDIS Miniport-Treiber hat zwei grundlegende Funktionen:

  • Verwaltung einer Netzwerkschnittstellenkarte (NIC), einschließlich Senden und Empfangen von Daten über die NIC.

  • Schnittstelle zu übergeordneten Treibern, wie z. B. Filtertreibern, Zwischentreibern und Protokolltreibern.

Ein Miniport-Treiber kommuniziert mit seinen NICs und mit übergeordneten Treibern über die NDIS-Bibliothek. Die NDIS-Bibliothek exportiert eine vollständige Reihe von Funktionen (NdisMXxx und andere NdisXxx Funktionen), die alle Betriebssystemfunktionen kapseln, die ein Miniport-Treiber aufrufen muss. Der Miniport-Treiber muss seinerseits eine Reihe von Einstiegspunkten (MiniportXxx-Funktionen) exportieren, die NDIS für seine eigenen Zwecke oder im Namen von übergeordneten Treibern aufruft, um auf den Miniport-Treiber zuzugreifen.

Hinweis

Weitere Informationen über den NDIS-Treiber-Stack und ein Diagramm, das die Beziehung zwischen allen vier NDIS-Treiber-Typen zeigt, finden Sie unter NDIS-Treiber-Stack.

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

  • Wenn ein Transporttreiber ein Paket zu übertragen hat, ruft er eine NdisXxx-Funktion auf, die von der NDIS-Bibliothek exportiert wird. NDIS gibt das Paket dann an den Miniport-Treiber weiter, indem er die entsprechende MiniportXxx Funktion aufruft, die vom Miniport-Treiber exportiert wird. Der Miniport-Treiber leitet dann das Paket zur Übertragung an die NIC weiter, indem er die entsprechenden NdisXxx-Funktionen aufruft.

  • Wenn ein NIC ein Paket empfängt, das an ihn selbst adressiert ist, kann er einen Hardware-Interrupt buchen, der von NDIS oder dem Miniport-Treiber des NIC verarbeitet wird. NDIS benachrichtigt den Miniport-Treiber der NIC, indem es die entsprechende MiniportXxx Funktion aufruft. Der Miniport-Treiber richtet die Übertragung der Daten von der NIC ein und meldet dann das Vorhandensein des empfangenen Pakets an gebundene übergeordnete Treiber, indem er die entsprechende NdisXxx-Funktion aufruft.

Verbindungslose und verbindungsorientierte Miniport-Treiber

NDIS unterstützt Miniport-Treiber sowohl für verbindungslose Umgebungen als auch für verbindungsorientierte Umgebungen.

Verbindungslose Miniport-Treiber steuern NICs für verbindungslose Netzwerkmedien, wie z. B. Ethernet. Verbindungslose Miniport-Treiber werden weiter unterteilt in deserialisierte und serialisierte Treiber:

Hinweis Alle NDIS 6.0 und spätere Treiber sind deserialisiert.

  • Deserialisierte Treiber serialisieren den Vorgang ihrer eigenen MiniportXxx Funktionen und stellen alle eingehenden Sendepakete intern in eine Warteschlange. Dies führt zu einer deutlich besseren Vollduplex-Leistung, vorausgesetzt, dass die kritischen Abschnitte des Treibers (Code, der jeweils nur von einem einzigen Thread ausgeführt werden kann) klein gehalten werden.

  • Serialisierte Treiber verlassen sich auf NDIS, um Aufrufe an ihre MiniportXxx Funktionen zu serialisieren und ihre Warteschlangen zu verwalten.

Verbindungsorientierte Miniport-Treiber steuern NICs für verbindungsorientierte Networking-Medien, wie z. B. ISDN. Verbindungsorientierte Miniport-Treiber sind immer deserialisiert – sie serialisieren immer den Vorgang ihrer eigenen MiniportXxx-Funktionen und stellen alle eingehenden Pakete intern in eine Warteschlange.

Ein NDIS-Miniport-Treiber kann eine nicht-NDIS-bezogene untere Edge haben (siehe folgende Abbildung).

Diagramm eines NDIS-Miniport-Treibers mit einer nicht-NDIS-unteren Edge.

Ein Miniport-Treiber verwendet über seine nicht-NDIS-untere Edge die Klassenschnittstelle für einen Bus, wie z. B. den Universal Serial Bus (USB), um ein Gerät am Bus zu steuern. Der Miniport-Treiber kommuniziert mit dem Gerät, indem er E/A Request-Pakete (IRPs) entweder an den Bus oder direkt an remote Geräte sendet, die an den Bus angeschlossen sind. An seiner oberen Edge stellt der Miniport-Treiber eine standardmäßige NDIS-Miniport-Treiberschnittstelle zur Verfügung, über die der Miniport-Treiber mit darüber liegenden NDIS-Treibern kommunizieren kann.

NDIS-Miniporttreiber

NDIS-Miniport-Treiber-Referenz