Freigeben über


NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur (ndis.h)

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

Diese Informationen sind in den Out-of-Band-Daten (OOB) 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;

Member

Header

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

Das Type-Element von Header muss auf NDIS_OBJECT_TYPE_DEFAULT festgelegt werden. Um die Version der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur anzugeben, muss das Revisionselement von Header auf den folgenden Wert festgelegt werden:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Ursprüngliche Version für NDIS 6.30 und höher.

Legen Sie das Element Größe 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 angibt, das der NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur folgt.

NumElements

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

Der Wert des NumElements-Members gibt die Anzahl der derzeit verwendeten NDIS_SWITCH_PORT_DESTINATION-Elemente (wie vom NumDestinations-Member angegeben) sowie die Anzahl der Elemente an, 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 von (NumElements - NumDestinations) berechnet.

NumDestinations

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

Hinweis Wenn NumElements auf 0 festgelegt ist, wird dieses Element ignoriert.
 

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.

Hinweise

Die erweiterbare Switcherweiterung kann mit den Zielports in der NET_BUFFER_LIST Struktur eines Pakets Folgendes 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 von Portzielen für ein Paket abzurufen. GetNetBufferListDestinations gibt einen Zeiger auf die NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY-Struktur im Destinations-Parameter zurück.

    Weitere Informationen finden Sie unter Abfragen der Extensible Switch-Zielportdaten eines Pakets.

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

    Nachdem die aktuellen Zielports für das Paket abfragt werden, kann die erweiterbare Switch-Erweiterung folgendes 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-Element dieser Struktur ändern. Eine Weiterleitungserweiterung kann auch die Elemente PreserveVLAN und PreservePriority ändern.
       
    Wenn die Erweiterung Portziele hinzufügt oder ändert, muss sie UpdateNetBufferListDestinations aufrufen, um die Änderungen an den Zielports in die OOB-Daten des Pakets in der NET_BUFFER_LIST-Struktur zu committen.

    Weitere Informationen finden Sie unter Verwalten von Hyper-V Extensible Switch-Zielportdaten.

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
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.30 und höher.
Kopfzeile ndis.h (einschließlich Ndis.h)

Weitere Informationen

Hinzufügen von Extensible Switch-Zielportdaten zu einem Paket

Ausschließen der Paketübermittlung an erweiterbare 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 erweiterbaren Hyper-V-Switch

UpdateNetBufferListDestinations