OID_SWITCH_NIC_REQUEST
Eine Objektbezeichner-Methodenanforderung von OID_SWITCH_NIC_REQUEST wird verwendet, um OID-Anforderungen zu kapseln und an den externen Hyper-V-Erweiterbaren Switch weiterzuleiten. Dadurch kann die gekapselte OID-Anforderung an den Treiber für den zugrunde liegenden physischen Netzwerkadapter übermittelt werden, der an den externen Netzwerkadapter gebunden ist.
Diese OID-Anforderung wird auch verwendet, um OID-Anforderungen zu kapseln, die an andere Netzwerkadapter ausgegeben wurden, die mit erweiterbaren Switchports verbunden sind. In diesem Fall wird die gekapselte OID-Anforderung über den erweiterbaren Switchtreiberstapel zur Überprüfung durch Erweiterungen weitergeleitet.
Das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SWITCH_NIC_OID_REQUEST-Struktur . Diese Struktur gibt die Weiterleitungsinformationen für die OID-Anforderung an. Diese Struktur enthält auch einen Zeiger auf die ursprüngliche NDIS_OID_REQUEST Struktur der OID-Anforderung, die weitergeleitet wird.
Bemerkungen
Wenn OID-Anforderungen an die erweiterbare Hyper-V-Switch-Schnittstelle eingehen, kapselt sie sie, um sie über den erweiterbaren Switchsteuerungspfad weiterzuleiten. Diese OID-Anforderungen umfassen Folgendes:
Hardware-Auslagerung von OID-Anforderungen, einschließlich Anforderungen für internetprotokollelle Sicherheit (IPsec), VMQ (Virtual Machine Queue) und Single Root E/O Virtualization (SR-IOV). Diese OID-Anforderungen werden von einem überlastenden Protokoll oder Filtertreiber ausgegeben, der im Verwaltungsbetriebssystem der übergeordneten Hyper-V-Partition ausgeführt wird.
Wenn diese OID-Anforderungen an der erweiterbaren Switchschnittstelle eintreffen, kapselt der Protokollrand des erweiterbaren Switches die OID-Anforderung in einer NDIS_SWITCH_NIC_OID_REQUEST-Struktur . Der Protokollrand legt die Member dieser Struktur wie folgt fest:
Die Member DestinationPortId und DestinationNicIndex sind auf die entsprechenden Werte für den externen Netzwerkadapter festgelegt.
Wenn die OID-Anforderung von einer untergeordneten Hyper-V-Partition stammt, werden die Member SourcePortId und SourceNicIndex auf die entsprechenden Werte für den Port und den Netzwerkadapter festgelegt, die von der Partition verwendet werden. Andernfalls werden die Member SourcePortId und SourceNicIndex auf 0 festgelegt.
Hinweis Die Erweiterung muss die Werte dieser Member beibehalten, wenn sie die OID-Anforderung weiterleitet oder umleitet.
Das OidRequest-Element ist auf einen Zeiger auf die NDIS_OID_REQUEST-Struktur für die gekapselte OID-Anforderung festgelegt.
Der Protokollrand gibt dann die OID_SWITCH_NIC_REQUEST Anforderung aus, um die gekapselte OID-Anforderung über den erweiterbaren Switchsteuerungspfad an den externen Netzwerkadapter weiterzuleiten.
Eine zugrunde liegende Weiterleitungserweiterung kann gekapselte Hardwareauslagerungsanforderungen an einen physischen Netzwerkadapter umleiten, der an den externen Netzwerkadapter gebunden ist. Wenn die Erweiterung beispielsweise physische Netzwerkadapter von einem erweiterbaren Switch-Team unterstützt, die an den externen Netzwerkadapter gebunden sind, kann sie die OID_SWITCH_NIC_REQUEST Anforderung an einen physischen Adapter im LBFO-Team (Lastenausgleichsfailover) weiterleiten, das die Hardwareauslagerung unterstützt. Weitere Informationen zu diesem Verfahren finden Sie unter Verwalten der Hardwareauslagerung von OID-Anforderungen an physische Netzwerkadapter.
Weitere Informationen zu erweiterbaren Switch-Teams finden Sie unter Typen physischer Netzwerkadapterkonfigurationen.
Multicast-OID-Anforderungen, einschließlich OID_802_3_ADD_MULTICAST_ADDRESS und OID_802_3_DELETE_MULTICAST_ADDRESS. Diese OID-Anforderungen werden durch überlastende Protokoll- und Filtertreiber ausgegeben, die entweder im Verwaltungsbetriebssystem oder im Gastbetriebssystem einer untergeordneten Hyper-V-Partition ausgeführt werden.
Wenn diese OID-Anforderungen an der erweiterbaren Switchschnittstelle eintreffen, kapselt der Protokollrand des erweiterbaren Switches die OID-Anforderung in einer NDIS_SWITCH_NIC_OID_REQUEST-Struktur . Der Protokollrand legt auch die Member SourcePortId und SourceNicIndex auf die entsprechenden Werte für den Port und den Netzwerkadapter fest, von dem die OID-Anforderung stammt. Der Protokollrand gibt dann die OID_SWITCH_NIC_REQUEST-Anforderung aus, um die gekapselte OID-Anforderung über den erweiterbaren Switchsteuerungspfad zur Überprüfung durch zugrunde liegende Erweiterungen weiterzuleiten.
Hinweis In diesem Fall legt der Protokollrand die Member DestinationPortId und DestinationNicIndex auf 0 fest. Dies gibt an, dass die gekapselte OID-Anforderung an Erweiterungen im Steuerelementpfad übermittelt werden soll.
Zugrunde liegende Weiterleitungserweiterungen können diese gekapselten OID-Anforderungen überprüfen und die von ihnen angegebenen Multicastadresseninformationen beibehalten. Beispielsweise benötigt die Erweiterung diese Informationen, wenn sie Multicastpakete entstammt, die sie an einen erweiterbaren Switchport weiterleitet.
Weitere Informationen finden Sie unter Weiterleiten von OID-Anforderungen von einer untergeordneten Hyper-V-Partition.
Eine Weiterleitungserweiterung kann auch eine OID_SWITCH_NIC_REQUEST ausstellen, um gekapselte OID-Anforderungen an einen physischen Netzwerkadapter weiterzuleiten, der an den externen Netzwerkadapter gebunden ist. Dadurch kann die Erweiterung eine eigene OID-Anforderung erstellen oder eine vorhandene OID-Anforderung an einen physischen Netzwerkadapter umleiten, der an den externen Netzwerkadapter gebunden ist. Hierzu muss die Erweiterung die folgenden Schritte ausführen:
Die Erweiterung ruft ReferenceSwitchNic auf, um einen Verweisindikator 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 Referenzindikator nicht zero ist.
Hinweis Die erweiterbare Switchschnittstelle kann die Verbindung des physischen Netzwerkadapters trennen, während der Referenzindikator nicht zero ist. Weitere Informationen finden Sie unter Hyper-V Extensible Switch Port und Netzwerkadapterstatus.
Die Erweiterung kapselt die OID-Anforderung, indem eine NDIS_SWITCH_NIC_OID_REQUEST-Struktur wie folgt initialisiert wird:
Das DestinationPortId-Element muss auf den Bezeichner des erweiterbaren Switchports festgelegt werden, mit dem der externe Netzwerkadapter verbunden ist.
Das DestinationNicIndex-Element muss auf den Nonzero-Indexwert des zugrunde liegenden physischen Netzwerkadapters festgelegt werden.
Wenn die Erweiterung im Namen einer untergeordneten Hyper-V-Partition entsteht, werden die Member SourcePortId und SourceNicIndex auf die entsprechenden Werte für den Port und den Netzwerkadapter festgelegt, die von der Partition verwendet werden. Andernfalls werden die Member SourcePortId und SourceNicIndex auf 0 festgelegt.
Wenn die Erweiterung beispielsweise Hardwareauslagerungsressourcen für eine untergeordnete Partition verwaltet, müssen die Member SourcePortId und SourceNicIndex festgelegt werden, um anzugeben, für welche Partition die Kapselung der OID-Anforderung für hardwareoffloadet ist.
Das OidRequest-Element muss auf einen Zeiger auf eine initialisierte NDIS_OID_REQUEST-Struktur für die gekapselte OID-Anforderung festgelegt werden.
Die Erweiterung ruft NdisFOidRequest auf, um die OID-Anforderung an den angegebenen erweiterbaren Zielschalterport und Netzwerkadapter weiterzuleiten.
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.
Rückgabestatuscodes
Der zugrunde liegende Miniportrand des erweiterbaren Switches schließt die OID-Abfrageanforderung von OID_SWITCH_NIC_REQUEST ab und gibt einen der folgenden status-Codes zurück.
Statuscode | BESCHREIBUNG |
---|---|
NDIS_STATUS_SUCCESS |
Die OID-Anforderung wurde erfolgreich abgeschlossen. |
NDIS_STATUS_Xxx |
Die Anforderung ist aus anderen Gründen fehlgeschlagen. |
Requirements (Anforderungen)
Version |
Unterstützt in NDIS 6.30 und höher. |
Header |
Ntddndis.h (include Ndis.h) |