Freigeben über


Weiterleiten von OID-Anforderungen an physische Netzwerkadapter

In diesem Thema wird erläutert, wie Hyper-V-Erweiterungserweiterungen OID-Anforderungen (Object Identifier) für zugrunde liegende physische Adapter über den hyper-V erweiterbaren Switchsteuerungspfad weiterleiten. Die Erweiterung kann auch OID-Anforderungen an zugrunde liegende physische Netzwerkadapter erstellen, indem sie die in diesem Thema beschriebenen Methoden befolgt.

Beispielsweise kann der externe Netzwerkadapter an den virtuellen Miniport-Edge eines MUX-Zwischentreibers (NDIS Multiplexer) gebunden werden. Der MUX-Treiber ist an ein Team von mindestens einem physischen Netzwerk auf dem Host gebunden. Diese Konfiguration wird als erweiterbares Switchteam bezeichnet.

In dieser Konfiguration wird für jeden Netzwerkadapter im Team eine erweiterbare Switcherweiterung verfügbar gemacht. Dadurch kann die Erweiterung die Konfiguration und Verwendung einzelner Netzwerkadapter im Team verwalten. Beispielsweise kann eine Weiterleitungserweiterung unterstützung für eine LBFO-Lösung (Lastenausgleichsfailover) über das Team bereitstellen, indem ausgehende Pakete an einzelne Adapter weitergeleitet werden. Eine Weiterleitungserweiterung, die ein erweiterbares Switchteam verwaltet, wird als Teamanbieter bezeichnet. Weitere Informationen zu Teaminganbietern finden Sie unter Teaming Provider Extensions.

Die folgende Abbildung zeigt ein Beispiel für ein erweiterbares Switchteam für NDIS 6.40 (Windows Server 2012 R2) und höher.

Diagramm des Oidsteuerungspfads für ndis 6.40.

Die folgende Abbildung zeigt ein Beispiel für ein erweiterbares Switchteam für NDIS 6.30 (Windows Server 2012).

Diagramm des erweiterbaren Switchteams für ndis 6.30.

Hinweis In der Hyper-V-Erweiterbaren Switch-Schnittstelle werden NDIS-Filtertreiber als erweiterbare Switcherweiterungen bezeichnet, und der Treiberstapel wird als erweiterbarer Switchtreiberstapel bezeichnet.

OID-Anforderungen müssen gekapselt werden, um die Anforderung an einen zugrunde liegenden physischen Netzwerkadapter weiterzuleiten. OID-Anforderungen werden zuerst in einer NDIS_SWITCH_NIC_OID_REQUEST-Struktur gekapselt. Anschließend werden die OID-Anforderungen über den erweiterbaren Switchsteuerungspfad durch eine OID-Setanforderung von OID_SWITCH_NIC_REQUEST weitergeleitet.

OID-Anforderungen an die zugrunde liegenden physischen Adapter werden wie folgt ausgegeben:

Die erweiterbare Switchschnittstelle.
OID-Anforderungen, z. B. Anforderungen für Hardwareauslagerungen, werden von überlagernden Protokoll- oder Filtertreibern ausgegeben, die in einem der folgenden Komponenten ausgeführt werden:

  • Das Verwaltungsbetriebssystem, das in der übergeordneten Hyper-V-Partition ausgeführt wird.

  • Das Gastbetriebssystem, das in der untergeordneten Hyper-V-Partition ausgeführt wird.

Wenn diese OID-Anforderungen vom erweiterbaren Switch empfangen werden, werden sie gekapselt und über den erweiterbaren Switchsteuerungspfad weitergeleitet. Wenn eine Weiterleitungserweiterung die gekapselte OID-Anforderung empfängt, kann sie die Anforderung an einen zugrunde liegenden physischen Adapter weiterleiten. Diese Möglichkeit ist besonders nützlich, um das erweiterbare Switchteam für Hardwareauslagerungen zu konfigurieren.

Der MUX-Treiber kündigt beispielsweise die allgemeinen Funktionen des gesamten erweiterbaren Switchteams an. Die Weiterleitungserweiterung kann jedoch OID-Anforderungen ausgeben, um die einzelnen Funktionen von Adaptern innerhalb des Teams abzufragen oder festzulegen. Dann kann die Weiterleitungserweiterung eine NDIS-status Vom externen Netzwerkadapter stammen, um überlastende Treiber über die Funktionen zu informieren, die für das gesamte Team gelten. Weitere Informationen zu diesem Verfahren finden Sie unter Ursprungs-NDIS-Statusanzeigen von physischen Netzwerkadaptern.

Wenn die Weiterleitungserweiterung die OID-Anforderung über den Steuerungspfad weiterleitet, wird sie vom externen Netzwerkadapter empfangen. An diesem Punkt wird die OID-Anforderung gekapselt und an den angegebenen physischen Netzwerkadapter weitergeleitet.

Hinweis Ab Windows Server 2012 werden nur Hardwareauslagerungs-OID-Anforderungen gekapselt und auf diese Weise weitergeleitet. Beispielsweise werden OID-Anforderungen für die VM-Warteschlange (VMQ) oder internet protocol security (IPsec) gekapselt und über den erweiterbaren Switchsteuerungspfad weitergeleitet. Weitere Informationen finden Sie unter Verwalten der Hardwareauslagerung von OID-Anforderungen an physische Netzwerkadapter.

Eine Weiterleitungserweiterung.
Die Weiterleitungserweiterung kann eigene gekapselte OID-Anforderungen erstellen und an einen zugrunde liegenden physischen Netzwerkadapter weiterleiten. Die Weiterleitungserweiterung kann Standardanforderungen für NDIS-OID kapseln. Die Weiterleitungserweiterung kann auch private OID-Anforderungen kapseln, die vom unabhängigen Hardwarehersteller (Independent Hardware Vendor, IHV) für die physischen Netzwerkadapter definiert werden. Dies ermöglicht eine Weiterleitungserweiterung, die ebenfalls vom IHV entwickelt wurde, um proprietäre Attribute für einzelne physische Adapter im Team zu aktivieren oder zu deaktivieren.

Darüber hinaus kann die Weiterleitungserweiterung gekapselte Hardwareauslagerungsanforderungen zum Zuordnen von Ressourcen für eine angegebene untergeordnete Hyper-V-Partition erstellen. Beispielsweise kann die Weiterleitungserweiterung gekapselte OID-Anforderungen von OID_RECEIVE_FILTER_ALLOCATE_QUEUE zum Zuordnen eines VMQ für eine angegebene untergeordnete Partition stammen. In diesem Fall kapselt die Erweiterung die Anforderung, die von dem erweiterbaren Switchport und der Netzwerkadapterverbindung stammt, die der Partition zugeordnet ist.

Hinweis Die Weiterleitungserweiterung kann nur eine eigene gekapselte OID-Anforderung für die Hardwareauslagerung erstellen, wenn sie dieselbe OID-Anforderung filtert, die von überlagernden Treibern ausgegeben wurde. In diesem Fall darf die Erweiterung die ursprüngliche OID-Anforderung nicht weiterleiten. Stattdessen muss die Erweiterung NdisFOidRequestComplete aufrufen, um diese Anforderung abzuschließen, wenn NDIS ihren FilterOidRequestComplete aufruft , um die ursprüngliche OID-Anforderung abzuschließen.

Filtern oder Erfassen von Erweiterungen
Eine Filter- oder Erfassungserweiterung kann eigene gekapselte OID-Abfrageanforderungen erstellen und an einen zugrunde liegenden physischen Netzwerkadapter weiterleiten. Diese Erweiterungen können Standardmäßige NDIS-OID-Abfrageanforderungen oder private OID-Abfrageanforderungen kapseln, die vom unabhängigen Hardwarehersteller (Independent Hardware Vendor, IHV) für die physischen Netzwerkadapter definiert werden.

Hinweis Nur Weiterleitungserweiterungen können gekapselte OID-Set-Anforderungen an zugrunde liegende physische Adapter erstellen.

Die Weiterleitungserweiterung muss die folgenden Schritte ausführen, wenn sie eine gekapselte OID-Anforderung für einen zugrunde liegenden physischen Adapter weiterleitet, umleitet oder von ihnen stammt:

  1. Wenn die Weiterleitungserweiterung von einer OID-Anforderung stammt, muss sie eine durch die Erweiterung zugewiesene NDIS_OID_REQUEST-Struktur mit den Informationen im Zusammenhang mit der Anforderung initialisieren.

    Wenn die Erweiterung eine OID-Anforderung weiterleite, darf sie die vorhandene NDIS_OID_REQUEST Struktur, auf die durch den OidRequest-Parameter der FilterOidRequest-Funktion verwiesen wird, nicht ändern. Stattdessen muss die Erweiterung NdisAllocateCloneOidRequest aufrufen, um Arbeitsspeicher für eine neue NDIS_OID_REQUEST-Struktur zuzuweisen und alle Informationen aus der vorhandenen NDIS_OID_REQUEST-Struktur zu kopieren.

  2. Die Erweiterung legt die Member einer durch die Erweiterung zugeordneten NDIS_SWITCH_NIC_OID_REQUEST-Struktur auf die folgenden Werte fest:

    • Das DestinationPortId-Element muss auf den Bezeichner des erweiterbaren Switchports festgelegt werden, mit dem der externe Netzwerkadapter verbunden ist.

    • Der DestinationNicIndex-Member muss auf den Indexwert ungleich null des zugrunde liegenden physischen Netzwerkadapters festgelegt werden.

      Weitere Informationen zu diesen Indexwerten finden Sie unter Indexwerte für Netzwerkadapter.

    • Wenn die Weiterleitungserweiterung von einer Hardwareauslagerungs-OID-Anforderung für eine untergeordnete Hyper-V-Partition stammt, muss der SourcePortId-Member auf den Bezeichner des Ports festgelegt werden, der von der Partition verwendet wird. Außerdem muss der SourceNicIndex-Member auf den Netzwerkadapterindex für die Netzwerkverbindung mit diesem Port festgelegt werden.

      Wenn die Weiterleitungserweiterung eine Standard- oder private OID-Anforderung für ihre eigenen Zwecke erstellt, müssen die Member SourcePortId und SourceNicIndex auf Null festgelegt werden.

      Wenn die Weiterleitungserweiterung eine Hardwareauslagerungs-OID-Anforderung weiterleitet oder umleitet, muss sie die Werte der Member SourcePortId und SourceNicIndex beibehalten, die von der erweiterbaren Switchschnittstelle festgelegt wurden.

    • Der OidRequest-Member muss auf einen Zeiger auf eine initialisierte NDIS_OID_REQUEST-Struktur für die gekapselte OID-Anforderung festgelegt werden. Die Weiterleitungserweiterung ordnet diese Struktur zu und initialisiert sie oder verwendet die geklonte Kopie der Struktur.

  3. Die Erweiterung legt die Member einer durch die Erweiterung zugewiesenen NDIS_OID_REQUEST-Struktur auf die folgenden Werte fest:

    • Der Oid-Member muss auf OID_SWITCH_NIC_REQUEST festgelegt werden.

    • Das InformationBuffer-Element muss einen Zeiger auf einen Puffer enthalten, der die generierten oder gefilterten OID-Anforderungsdaten enthält.

    • Der InformationBufferLength-Member muss die Länge des Puffers in Bytes enthalten, der die generierten oder gefilterten OID-Anforderungsdaten enthält.

    Die Erweiterung legt die anderen Member auf Werte fest, die für die NDIS_OID_REQUEST-Struktur gültig sind.

  4. Die Erweiterung ruft ReferenceSwitchNic auf, um einen Verweiszähler für den Index des physischen Zielnetzwerkadapters zu erhöhen. Dadurch wird sichergestellt, dass die erweiterbare Switchschnittstelle die Verbindung des physischen Netzwerkadapters nicht löscht, während der Verweiszähler ungleich null ist.

    Wenn die Erweiterung ReferenceSwitchNic aufruft, wird der SwitchPortId-Parameter auf den für das DestinationPortId-Element angegebenen Wert festgelegt. Die Erweiterung legt auch den SwitchNicIndex-Parameter auf den für das DestinationNicIndex-Element angegebenen Wert fest.

    Hinweis Wenn ReferenceSwitchNic nicht NDIS_STATUS_SUCCESS zurückgibt, kann die OID-Anforderung nicht an den physischen Zielnetzwerkadapter weitergeleitet werden.

  5. Wenn die Weiterleitungserweiterung eine Hardwareauslagerungs-OID-Anforderung für eine untergeordnete Hyper-V-Partition erstellt, ruft sie auch ReferenceSwitchNic auf, um einen Verweiszähler für den Index der Quellnetzwerkadapterverbindung zu erhöhen, die der Partition zugeordnet ist. Dadurch wird sichergestellt, dass die erweiterbare Switchschnittstelle die Verbindung des physischen Netzwerkadapters nicht löscht, während der Verweiszähler ungleich null ist.

    Wenn die Erweiterung ReferenceSwitchNic aufruft, wird der SwitchPortId-Parameter auf den Wert festgelegt, der für den SourcePortId-Member angegeben ist. Die Erweiterung legt auch den SwitchNicIndex-Parameter auf den wert fest, der für das SourceNicIndex-Element angegeben ist.

    Hinweis Wenn ReferenceSwitchNic nicht NDIS_STATUS_SUCCESS zurückgibt, kann die OID-Anforderung nicht an den physischen Zielnetzwerkadapter weitergeleitet werden.

  6. Die Erweiterung ruft NdisFOidRequest auf, um die gekapselte OID-Anforderung an den angegebenen erweiterbaren Switchport und Netzwerkadapter des angegebenen Ziels weiterzuleiten.

    Hinweis Wenn die Erweiterung eine gefilterte OID-Anforderung weiterleitet, muss sie NdisFOidRequest im Kontext des Aufrufs der FilterOidRequest-Funktion aufrufen. Wenn die Erweiterung generierte OID-Anforderungen weiterleitet, ruft sie NdisFIndicateStatus auf, während sie sich in den Status Wird, Neustart,Angehalten und Anhalten befindet . Weitere Informationen zu diesen Zuständen finden Sie unter Filtern von Modulzuständen und -vorgängen.

  7. Wenn NDIS die FilterOidRequestComplete-Funktion aufruft , ruft die Erweiterung DereferenceSwitchNic auf, um den Verweiszähler für den Index des physischen Zielnetzwerkadapters zu löschen.

    Wenn die Weiterleitungserweiterung eine Hardwareauslagerungs-OID-Anforderung für eine untergeordnete Hyper-V-Partition ausgelöst hat, wird auch DereferenceSwitchNic aufgerufen, um den Verweiszähler für den Index der Quellnetzwerkadapterverbindung für den Adapter zu löschen.

    In beiden Fällen legt die Erweiterung die Parameter SwitchPortId und SwitchNicIndex auf die gleichen Werte fest, die sie beim Aufruf von ReferenceSwitchNic verwendet hat.

Weitere Informationen dazu, wie die Erweiterung OID-Anforderungen ausgibt, finden Sie unter Generieren von OID-Anforderungen aus einem NDIS-Filtertreiber.

Weitere Informationen zu MUX-Treibern finden Sie unter NDIS MUX Intermediate Drivers.