Share via


NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Die NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Wird von einer hyper-V erweiterbaren Switchweiterleitungserweiterung ausgegeben, um die Bindung zwischen einem VM-Netzwerkadapter (VM) und einer virtuellen PCI-Express-Funktion (VF) zu entfernen. Der VF wird von einem zugrunde liegenden physischen Netzwerkadapter verfügbar gemacht und unterstützt, der die SR-IOV-Schnittstelle (Single Root E/O Virtualization) unterstützt.

Um die NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Angabe ausstellen zu können, muss die Weiterleitungserweiterung die Angabe in einer NDIS_SWITCH_NIC_STATUS_INDICATION-Struktur kapseln und eine NDIS_STATUS_SWITCH_NIC_STATUS status Angabe ausgeben.

Weitere Informationen zu diesem Prozess finden Sie unter Richtlinien für die Ausgabe einer NDIS_STATUS_SWITCH_PORT_REMOVE_VF Statusanzeige.

Bemerkungen

Ein PCIe VF wird von einem zugrunde liegenden physischen Adapter erstellt und zugeordnet, der die SR-IOV-Schnittstelle unterstützt. Nach der Erstellung fügt der Virtualisierungsstapel die VF einer untergeordneten Hyper-V-Partition an oder weist sie zu. Das Gastbetriebssystem, das in dieser Partition ausgeführt wird, macht einen VM-Netzwerkadapter verfügbar, der an den VF des zugrunde liegenden physischen SR-IOV-Adapters gebunden ist.

Nachdem die virtuellen und physischen Netzwerkadapter zugewiesen wurden, werden Pakete direkt zwischen dem VF und dem VM-Netzwerkadapter weitergeleitet. Da der erweiterbare Switch jedoch nicht an der Paketübermittlung beteiligt ist, werden erweiterbare Switchportrichtlinien nicht auf diese Pakete angewendet. Dies umfasst Portrichtlinien für Zugriffssteuerungslisten (Access Control Lists, ACLs) und Quality of Service (QoS).

Eine erweiterbare Switchweiterleitungserweiterung kann die Zuweisung des VF zur untergeordneten Partition entfernen, indem eine NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Angezeigt wird. Diese Angabe bewirkt, dass die Pakete über einen erweiterbaren Switchport statt direkt zwischen dem VM-Netzwerkadapter und dem VF des zugrunde liegenden physischen SR-IOV-Adapters übermittelt werden. Dadurch können die erweiterbaren Switchportrichtlinien auf Pakete angewendet werden, die über den erweiterbaren Switchport empfangen oder gesendet werden.

Wenn die Weiterleitungserweiterung den NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Angabe macht, gibt sie den erweiterbaren Switchport an, mit dem der VM-Netzwerkadapter verbunden ist.

Weitere Informationen zu erweiterbaren Switchweiterleitungserweiterungen finden Sie unter Weiterleitungserweiterungen.

Richtlinien für die Ausgabe einer NDIS_STATUS_SWITCH_PORT_REMOVE_VF Statusanzeige

Um die NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Angabe ausstellen zu können, muss die Weiterleitungserweiterung die folgenden Schritte ausführen:

  1. Die Weiterleitungserweiterung initialisiert eine NDIS_STATUS_INDICATION-Struktur für die NDIS_STATUS_SWITCH_PORT_REMOVE_VF-Angabe . Für diese Angabe legen die Weiterleitungserweiterungen die folgenden Member der NDIS_STATUS_INDICATION-Struktur fest:

    • Das StatusCode-Element muss auf NDIS_STATUS_SWITCH_PORT_REMOVE_VF festgelegt werden.

    • Der StatusBuffer-Member muss auf NULL festgelegt werden.

    • StatusBufferSize muss auf Null festgelegt werden.

  2. Die Weiterleitungserweiterung initialisiert eine NDIS_SWITCH_NIC_STATUS_INDICATION-Struktur . Um eine VF-Zuweisung zu entfernen, muss die Weiterleitungserweiterung die Member wie folgt festlegen:

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

    • Das DestinationNicIndex-Element muss auf den Indexwert des VM-Netzwerkadapters festgelegt werden, der mit dem angegebenen Port verbunden ist.

    • Der SourcePortId-Member muss auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt werden.

    • Das SourceNicIndex-Element muss auf NDIS_SWITCH_DEFAULT_NIC_INDEX festgelegt werden.

    • Der StatusIndication-Member muss auf die Adresse der NDIS_STATUS_INDICATION-Struktur für die NDIS_STATUS_SWITCH_PORT_REMOVE_VF-Angabe festgelegt werden.

  3. Die Weiterleitungserweiterung initialisiert eine NDIS_STATUS_INDICATION-Struktur für die NDIS_SWITCH_NIC_STATUS_INDICATION-Angabe . Für diese Angabe legt die Weiterleitungserweiterung die folgenden Member der NDIS_STATUS_INDICATION-Struktur fest:

  4. Die Weiterleitungserweiterung muss ReferenceSwitchNic aufrufen, um einen Verweiszähler für den VM-Netzwerkadapter zu erhöhen. Wenn ReferenceSwitchNic nicht mit NDIS_STATUS_SUCCESS abgeschlossen wird, darf die Weiterleitungserweiterung die status-Angabe nicht weiterleiten.

    Hinweis Wenn die Weiterleitungserweiterung eine OID_SWITCH_NIC_DISCONNECT set-Anforderung für den VM-Adapter empfangen hat, darf sie ReferenceSwitchNic weder aufrufen noch die status Anzeigen weiterleiten.

  5. Die Weiterleitungserweiterung ruft NdisFIndicateStatus auf, um den NDIS_STATUS_INDICATION an übersteigende Erweiterungen im erweiterbaren Switchtreiberstapel weiterzuleiten. Wenn die Weiterleitungserweiterung diese Funktion aufruft, wird der Parameter StatusIndication auf einen Zeiger auf die NDIS_STATUS_INDICATION-Struktur für die NDIS_STATUS_SWITCH_NIC_STATUS-Angabe festgelegt.

  6. Nachdem NdisFIndicateStatus zurückgegeben wurde , muss die Weiterleitungserweiterung DereferenceSwitchNic aufrufen, um den Verweiszähler für den VM-Netzwerkadapter zu dekrementieren.

Hinweis Die Weiterleitungserweiterung muss die vorherigen Schritte für jede VF-Zuweisung befolgen, die von der Weiterleitungserweiterung entfernt wird.

Weitere Informationen dazu, wie eine Weiterleitungserweiterung status Hinweise weiterleitet, finden Sie unter Filtermodulstatusanzeigen.

Richtlinien für die Bestimmung von VF-Zuweisungen

Die Weiterleitungserweiterung kann die aktuellen VF-Zuweisungen für virtuelle Netzwerkadapter aufzählen, indem eine OID-Abfrageanforderung von OID_SWITCH_NIC_ARRAY ausgegeben wird. Diese Anforderung gibt eine NDIS_SWITCH_NIC_ARRAY-Struktur zurück, die ein Array von NDIS_SWITCH_NIC_PARAMETERS-Strukturen enthält. Jede NDIS_SWITCH_NIC_PARAMETERS-Struktur gibt die Parameter eines Netzwerkadapters an, der in einer der folgenden Umgebungen verfügbar gemacht wird:

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

    Netzwerkadapter, die in diesem Betriebssystem verfügbar gemacht werden, werden mit dem NDIS_SWITCH_NIC_TYPE Enumerationswert NdisSwitchNicTypeExternal oder NdisSwitchNicTypeInternal angegeben.

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

    Netzwerkadapter, die in diesem Betriebssystem verfügbar gemacht werden, werden mit dem NDIS_SWITCH_NIC_TYPE Enumerationswert NdisSwitchNicTypeSynthetic oder NdisSwitchNicTypeEmulated angegeben.

Wenn die OID-Abfrageanforderung von OID_SWITCH_NIC_ARRAY mit einer status von NDIS_STATUS_SUCCESS abgeschlossen wird, kann die Weiterleitungserweiterung VF-Zuweisungen ermitteln, indem jede NDIS_SWITCH_NIC_PARAMETERS-Struktur im zurückgegebenen Array untersucht wird. Wenn der VFAssigned-Member der NDIS_SWITCH_NIC_PARAMETERS-Struktur auf TRUE festgelegt ist, wird der Netzwerkadapter, der der NDIS_SWITCH_NIC_PARAMETERS-Struktur entspricht, einem VF zugewiesen.

Die Weiterleitungserweiterung kann die Zuweisung entfernen, indem eine NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Angabe ausgegeben wird. In diesem Fall muss die Weiterleitungserweiterung den DestinationPortId-Member des NDIS_SWITCH_NIC_STATUS_INDICATION auf den Wert des PortId-Elements der NDIS_SWITCH_NIC_PARAMETERS-Struktur festlegen.

Weitere Informationen zum Ausgeben einer NDIS_STATUS_SWITCH_PORT_REMOVE_VF status Angabe finden Sie unter Richtlinien für die Ausgabe einer NDIS_STATUS_SWITCH_PORT_REMOVE_VF Statusanzeige.

Requirements (Anforderungen)

Version

Unterstützt in NDIS 6.30 und höher.

Header

Ndis.h (include Ndis.h)

Weitere Informationen


NdisFIndicateStatus

NDIS_STATUS_INDICATION

NDIS_STATUS_SWITCH_NIC_STATUS

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY