Freigeben über


NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur (ndis.h)

Die NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur gibt ein Array von Hyper-V erweiterbaren Switch-Zielports für ein Paket an. Jedes Element im Array wird als NDIS_SWITCH_PORT_DESTINATION Struktur formatiert.

Diese Informationen sind in den OOB-Daten (Out-of-Band) der NET_BUFFER_LIST Struktur des Pakets enthalten.

Syntax

typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
  NDIS_OBJECT_HEADER Header;
  UINT32             ElementSize;
  UINT32             NumElements;
  UINT32             NumDestinations;
  PVOID              FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;

Angehörige

Header

Der Typ, die Überarbeitung und die Größe der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur. Dieses Element ist als NDIS_OBJECT_HEADER Struktur formatiert.

Das element TypeHeader muss auf NDIS_OBJECT_TYPE_DEFAULT festgelegt werden. Um die Version der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur anzugeben, muss das Revision Member von Header- auf den folgenden Wert festgelegt werden:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Originalversion für NDIS 6.30 und höher.

Legen Sie das element Size auf NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1 fest.

ElementSize

Ein ULONG-Wert, der die Größe jedes NDIS_SWITCH_PORT_DESTINATION Elements in Byte angibt, das der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur folgt.

NumElements

Ein ULONG-Wert, der die Gesamtanzahl der NDIS_SWITCH_PORT_DESTINATION Elemente in der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur angibt.

Der Wert des NumElements Members gibt die Anzahl der aktuell verwendeten NDIS_SWITCH_PORT_DESTINATION Elemente an (wie durch das NumDestinations Member angegeben) sowie die Anzahl der Elemente, die für neue Zielports verfügbar sind. Die Anzahl der nicht verwendeten NDIS_SWITCH_PORT_DESTINATION Elemente in der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur wird berechnet durch (NumElements - NumDestinations).

NumDestinations

Ein ULONG-Wert, der die Anzahl der NDIS_SWITCH_PORT_DESTINATION Elemente in der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur angibt, die Portziele angeben.

Note If NumElements is set to zero, this member is ignored.
 

FirstElement

Ein Zeiger auf das erste NDIS_SWITCH_PORT_DESTINATION-Element im Puffer, das die NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur und alle zugehörigen Elemente enthält.

Bemerkungen

Die erweiterbare Switcherweiterung kann die folgenden Aktionen mit den Zielports in der NET_BUFFER_LIST Struktur eines Pakets ausführen:

  • Fragen Sie die aktuellen Zielports auf dem erweiterbaren Switch ab, an den das Paket weitergeleitet wird.

    Die erweiterbare Switcherweiterung ruft die GetNetBufferListDestinations- Funktion auf, um das Array der Portziele für ein Paket abzurufen. GetNetBufferListDestinations gibt einen Zeiger auf die NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur im parameter Destinations zurück.

    Weitere Informationen finden Sie unter Abfragen des Extensible Switch Destination Port Dataeines Pakets.

  • Fügen Sie die Zielports für das Paket hinzu oder ändern Sie sie.

    Nachdem sie die aktuellen Zielports für das Paket abfragen, kann die erweiterbare Switcherweiterung folgende Aktionen ausführen:

    • Eine Weiterleitungserweiterung kann der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Struktur neue Zielports hinzufügen.
    • Eine Filter- oder Weiterleitungserweiterung kann die Daten innerhalb einer NDIS_SWITCH_PORT_DESTINATION Struktur für einen Zielport ändern.
      Hinweis Eine Filtererweiterung kann nur das IsExcluded Mitglied dieser Struktur ändern. Eine Weiterleitungserweiterung kann auch die PreserveVLAN- und PreservePriority- Mitglieder ändern.
       
    Wenn die Erweiterung Portziele hinzufügt oder ändert, muss sie UpdateNetBufferListDestinations- aufrufen, um die Änderungen an den Zielports an die OOB-Daten des Pakets in der NET_BUFFER_LIST Struktur zu übernehmen.

    Weitere Informationen finden Sie unter Managing Hyper-V Extensible Switch Destination Port Data.

Erweiterbare Switcherweiterungen können das NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX Makro verwenden, um auf NDIS_SWITCH_PORT_DESTINATION Elemente in einem NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Array zuzugreifen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.30 und höher.
Header- ndis.h (include Ndis.h)

Siehe auch

Hinzufügen von Extensible Switch-Zielportdaten zu einem Paket-

Ausschließen der Paketübermittlung an extensible Switch-Zielports

Weiterleitungserweiterungen

GetNetBufferListDestinations-

Hybridweiterleitung

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Übersicht über den Hyper-V Extensible Switch

UpdateNetBufferListDestinations-