Weiterleiten von NDIS-Statusanzeigen von physischen Netzwerkadaptern
In diesem Thema wird die Methode erläutert, die von erweiterbaren Switchweiterleitungserweiterungen verwendet wird, um NDIS-status-Indikationen von einem zugrunde liegenden physischen Adapter weiterzuleiten. Mindestens ein zugrunde liegender physischer Adapter kann an den externen Netzwerkadapter des erweiterbaren Hyper-V-Switches gebunden werden.
Beispielsweise kann der externe Netzwerkadapter an den virtuellen Miniport-Edge eines MUX-Zwischentreibers (NDIS-Multiplexer) gebunden werden. Der MUX-Treiber ist an ein Team aus 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 Lastenausgleichsfailoverlösung (LBFO) über das Team bieten, indem ausgehende Pakete an einzelne Adapter weitergeleitet werden. Eine Weiterleitungserweiterung, die ein erweiterbares Switch-Team verwaltet, wird als Teaminganbieter bezeichnet. Weitere Informationen zu Teaminganbietern finden Sie unter Teaming-Anbietererweiterungen.
Die folgende Abbildung zeigt den erweiterbaren Hyper-V-Switchsteuerungspfad für NDIS status Indikationen von zugrunde liegenden physischen Netzwerkadaptern für NDIS 6.40 (Windows Server 2012 R2) und höher.
Die folgende Abbildung zeigt den erweiterbaren Hyper-V-Switchsteuerungspfad für NDIS status Indikationen von zugrunde liegenden physischen Netzwerkadaptern für NDIS 6.30 (Windows Server 2012).
Hinweis In der erweiterbaren Switch-Schnittstelle werden NDIS-Filtertreiber als erweiterbare Switcherweiterungen bezeichnet, und der Treiberstapel wird als erweiterbarer Switchtreiberstapel bezeichnet.
Die erweiterbare Switchschnittstelle leitet NDIS status Hinweise weiter, die von den zugrunde liegenden physischen Adaptern generiert wurden. Wenn ein externer Netzwerkadapter an ein erweiterbares Switchteam gebunden ist, wird die NDIS-status-Angabe vom virtuellen Adapterrand eines MUX-Treibers ausgelöst. Andernfalls wird die status Angabe vom einzelnen physischen Netzwerkadapter stammen, der an den externen Netzwerkadapter gebunden ist.
Wenn eine NDIS-status Anzeige an der erweiterbaren Switchschnittstelle eintrifft, kapselt sie die Angabe in einer NDIS_SWITCH_NIC_STATUS_INDICATION-Struktur. Anschließend gibt der Miniportrand des erweiterbaren Switches einen NDIS_STATUS_SWITCH_NIC_STATUS Hinweis aus, der diese Struktur enthält.
Sobald die Weiterleitungserweiterung den NDIS-status-Hinweis empfängt, kann sie die ursprünglichen Indikationsdaten weiterleiten oder die Daten ändern, bevor sie den Hinweis weiterleitet.
Hinweis Nur Weiterleitungserweiterungen können die Daten ändern, bevor die status-Angabe weitergeleitet wird. Weitere Informationen zu diesem Erweiterungstyp finden Sie unter Weiterleitungserweiterung.
Eine Weiterleitungserweiterung kann status Hinweise von jedem zugrunde liegenden physischen Adapter ändern und weiterleiten, der an den externen Netzwerkadapter des erweiterbaren Switches gebunden ist. In der Regel gibt die Erweiterung diese status Hinweise aus, um die angekündigten Hardwareauslagerungsfunktionen des zugrunde liegenden physischen Adapters zu ändern. Beispielsweise kann die Erweiterung status Indikationen für die folgenden Arten von Hardwareausladungen ändern und weiterleiten:
Internetprotokollsicherheit (IPsec)
Warteschlange für virtualisierte Computer (VMQ)
Einzelstamm-E/A-Virtualisierung (SR-IOV)
Wenn die Weiterleitungserweiterung einen NDIS-status Hinweis weiterleitet, müssen die Member der NDIS_SWITCH_NIC_STATUS_INDICATION-Struktur wie folgt festgelegt werden:
Das SourcePortId-Element muss auf den Bezeichner des Ports festgelegt werden, mit dem der externe Netzwerkadapter verbunden ist. Der externe Netzwerkadapter ist an mindestens einen physischen Adapter gebunden. Weitere Informationen finden Sie unter Externe Netzwerkadapter.
Das SourceNicIndex-Element muss auf NDIS_SWITCH_DEFAULT_NIC_INDEX festgelegt werden. Dadurch kann die status-Angabe so interpretiert werden, dass sie vom gesamten erweiterbaren Switch-Team stammt, das an den externen Netzwerkadapter gebunden ist.
Das DestinationPortId-Element muss auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt werden.
Das DestinationNicIndex-Element muss auf NDIS_SWITCH_DEFAULT_NIC_INDEX festgelegt werden.
Das StatusIndication-Element muss auf einen Zeiger auf eine NDIS_STATUS_INDICATION-Struktur festgelegt werden. Diese Struktur enthält die Daten für die gekapselte NDIS-status Indikation.
Wenn eine Weiterleitungserweiterung die gekapselte NDIS-status-Angabe ausgibt, müssen die folgenden Schritte ausgeführt werden:
Die Erweiterung ruft ReferenceSwitchNic auf, um einen Verweisindikator für den externen Netzwerkadapter zu erhöhen. Dadurch wird sichergestellt, dass die erweiterbare Switchschnittstelle die Netzwerkadapterverbindung nicht löscht, während der Referenzindikator nicht zero ist.
Wenn die Erweiterung ReferenceSwitchNic aufruft, legt sie den SwitchPortId-Parameter auf den wert fest, der für das SourcePortId-Element angegeben ist. Die Erweiterung legt auch den SwitchNicIndex-Parameter auf den wert fest, der für das SourceNicIndex-Element angegeben ist.
Hinweis Wenn ReferenceSwitchNic keine NDIS_STATUS_SUCCESS zurückgibt, kann die gekapselte NDIS-status-Indikation nicht ausgestellt werden.
Die Erweiterung ruft NdisFIndicateStatus auf, um die gekapselte status Benachrichtigung weiterzuleiten.
Hinweis Wenn die Erweiterung eine gekapselte NDIS-status-Angabe weiterleitet, muss sie NdisFIndicateStatus im Kontext des Aufrufs der FilterStatus-Funktion aufrufen.
Nachdem NdisFIndicateStatus zurückgegeben wurde, ruft die Erweiterung DereferenceSwitchNic auf, um den Verweiszähler für die Quell- oder Zielnetzwerkadapterverbindung zu löschen. Die Erweiterung legt die Parameter SwitchPortId und SwitchNicIndex auf die gleichen Werte fest, die sie beim Aufruf von ReferenceSwitchNic verwendet hat.
Weitere Informationen zu MUX-Treibern finden Sie unter NDIS MUX Intermediate Drivers.