Verwalten der Hardwareauslagerung von OID-Anforderungen an physische Netzwerkadapter
In diesem Thema wird erläutert, wie eine erweiterbare Hyper-V-Switchweiterleitungserweiterung OID-Anforderungen (Object Identifier) für Hardwareauslagerungstechnologien auf zugrunde liegenden physischen Adaptern über den erweiterbaren Switchsteuerungspfad verwaltet.
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 ein Beispiel für ein erweiterbares Switchteam für NDIS 6.40 (Windows Server 2012 R2) und höher.
Die folgende Abbildung zeigt ein Beispiel für ein erweiterbares Switchteam 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.
Durch die Behandlung der OID-Anforderung von OID_SWITCH_NIC_REQUEST kann eine Weiterleitungserweiterung an der Konfiguration des erweiterbaren Switch-Teams für Hardwareauslagerungen teilnehmen. Wenn die Erweiterung beispielsweise die physischen Netzwerkadapter eines erweiterbaren Switchteams verwaltet, kann sie die OID_SWITCH_NIC_REQUEST Anforderung an einen physischen Adapter weiterleiten, der die Hardwareauslagerung unterstützt.
NDIS und überlagernde Protokoll- und Filtertreiber können OID-Anforderungen für Hardware-Auslagerungstechnologien an den zugrunde liegenden physischen Netzwerkadapter ausgeben. Wenn diese OID-Anforderungen an die erweiterbare Switch-Schnittstelle gelangen, kapselt sie die OID-Anforderung in einem NDIS_SWITCH_NIC_OID_REQUEST. Anschließend stellt der Protokollrand des erweiterbaren Switches eine OID-Anforderung von OID_SWITCH_NIC_REQUEST aus, die diese Struktur enthält.
Die erweiterbare Switchschnittstelle kapselt OIDs für die folgenden Hardwareauslagerungstechnologien:
Auslagerung der Internetprotokollsicherheit (IPsec) (Version 2)
Die folgenden IPsec-OID-Anforderungen werden gekapselt:
Diese OID-Anforderungen dürfen bei der Weiterleitungserweiterung nicht fehlschlagen oder ein Veto einschlagen.
Weitere Informationen zu Version 2 der IPsec-Hardwareauslagerungstechnologie finden Sie unter IPsec-Auslagerung Version 2.
Einzelstamm-E/A-Virtualisierung (SR-IOV)
Die folgenden SR-IOV-OID-Anforderungen werden gekapselt:
Die Weiterleitungserweiterung kann ein Veto gegen OID-Anforderungen von OID_NIC_SWITCH_ALLOCATE_VF und OID_NIC_SWITCH_CREATE_VPORT, indem die Anforderung mit einem anderen status Code als NDIS_STATUS_SUCCESS abgeschlossen wird. Die Erweiterung darf jedoch kein Veto gegen die anderen SR-IOV-OID-Anforderungen einzulegen.
Weitere Informationen zur SR-IOV-Hardwareoffload-Technologie finden Sie unter Single Root E/O Virtualization (SR-IOV).
Warteschlange für virtualisierte Computer (VMQ)
Die folgenden VMQ-OID-Anforderungen werden gekapselt:
Die Weiterleitungserweiterung kann ein Veto gegen OID-Anforderungen von OID_RECEIVE_FILTER_ALLOCATE_QUEUE und OID_RECEIVE_FILTER_SET_FILTER, indem die Anforderung mit einem anderen status Code als NDIS_STATUS_SUCCESS abgeschlossen wird. Die Erweiterung darf jedoch kein Veto gegen die anderen VMQ-OID-Anforderungen ausführen.
Weitere Informationen zur VMQ-Hardwareauslagerungstechnologie finden Sie unter VmQ-Warteschlange (VMQ).
Die Weiterleitungserweiterung muss die folgenden Richtlinien für die Verarbeitung von Hardwareauslagerungsanforderungen für OID-Anforderungen befolgen:
Die Microsoft Chatplattform gibt nur die allgemeinen Auslagerungsfunktionen für das gesamte Team an. Die Erweiterung kann jedoch OID-Anforderungen generieren, um die Funktionen der einzelnen Adapter im Team abzufragen.
Sobald die Erweiterung die Hardwarefunktionen der physischen Adapter im Team ermittelt hat, kann sie OID-Setanforderungen für Hardwareauslagerungen an einen Adapter weiterleiten, der am besten für die Auslagerung geeignet ist.
Alle Hardwareauslagerungen von OID-Anforderungen, die durch das Überlagern von Protokoll- oder Filtertreibern entstehen, werden in einer NDIS_SWITCH_NIC_OID_REQUEST-Struktur gekapselt. Alle hardwareoffloadenden OID-Anforderungen, die von der Weiterleitungserweiterung stammen, müssen ebenfalls in einer NDIS_SWITCH_NIC_OID_REQUEST-Struktur gekapselt werden.
Die Erweiterung leitet die gekapselte OID-Anforderung über eine OID-Satzanforderung von OID_SWITCH_NIC_REQUEST an einen zugrunde liegenden physischen Netzwerkadapter weiter. Weitere Informationen zu diesem Verfahren finden Sie unter Weiterleiten von OID-Anforderungen an physische Netzwerkadapter.
Die Erweiterung darf keine Hardwareauslagerungsanforderungen ändern oder fehlschlagen, um die Zuordnung von Ressourcen zu löschen, freizugeben oder abzuschließen. Beispielsweise darf die Erweiterung keine Fehler bei OID-Anforderungen von OID_RECEIVE_FILTER_CLEAR_FILTER oder OID_NIC_SWITCH_DELETE_VPORT. Die erweiterbare Switchschnittstelle muss diese OID-Anforderungen verarbeiten, um statusinformationen für diese Ressourcen zu sauber.
Die Erweiterung kann Hardware-Auslagerungsanforderungen ändern oder fehlschlagen, um Ressourcen zuzuweisen, zu verschieben oder zu verlagern. Beispielsweise kann die Erweiterung OID-Anforderungen von OID_NIC_SWITCH_ALLOCATE_VF oder OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA fehlschlagen oder ändern.
Die Erweiterung kann alle Hardware-OIDs auf einen zugrunde liegenden physischen Netzwerkadapter auslagern. Die Erweiterung darf jedoch keine Hardwareauslagerungs-OID erstellen, die ressourcenlöscht oder freigibt, die die Erweiterung nicht zugewiesen hat.
Beispielsweise darf die Erweiterung keine Hardwareauslagerungs-OID-Anforderung von OID_RECEIVE_FILTER_FREE_QUEUE entstehen, wenn sie nicht eine OID_RECEIVE_FILTER_ALLOCATE_QUEUE Anforderung für dieselbe Warteschlange ausgelöst hat.
Hinweis Die Erweiterung kann nur eine eigene gekapselte Hardwareauslagerungsanforderung für die OID 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.
Wenn die Erweiterung eine Hardwareauslagerungs-OID-Anforderung an einen zugrunde liegenden physischen Netzwerkadapter weiterleitet, muss das DestinationNicIndex-Element der NDIS_SWITCH_NIC_OID_REQUEST-Struktur auf den Nonzero-Indexwert des Adapters festgelegt werden. Weitere Informationen zu diesen Indexwerten finden Sie unter Indexwerte des Netzwerkadapters.
Außerdem muss der DestinationPortId-Member auf den Bezeichner des erweiterbaren Switchports festgelegt werden, mit dem der externe Netzwerkadapter verbunden ist.
Wenn die Erweiterung eine Hardwareauslagerungs-OID-Anforderung zum Zuweisen von Ressourcen für eine untergeordnete Hyper-V-Partition erstellt, muss der SourcePortId-Member der NDIS_SWITCH_NIC_OID_REQUEST-Struktur auf den Bezeichner des erweiterbaren Switchports festgelegt werden, mit dem die Partition verbunden ist.
Das SourceNicIndex-Element muss auf NDIS_SWITCH_DEFAULT_NIC_INDEX festgelegt werden.
Wenn die Erweiterung NdisFOidRequest aufruft, um die OID-Anforderung weiterzuleiten, muss der OidRequest-Parameter auf einen Zeiger auf eine NDIS_OID_REQUEST-Struktur für eine OID_SWITCH_NIC_REQUEST OID-Anforderung festgelegt werden.
Weitere Informationen dazu, wie die Erweiterung OID-Anforderungen filtert, finden Sie unter Filtern von OID-Anforderungen in einem NDIS-Filtertreiber.
Weitere Informationen zu MUX-Treibern finden Sie unter NDIS MUX Intermediate Drivers.