Freigeben über


Hyper-V Extensible Switch Forwarding Context Data Types

The NET_BUFFER_LIST structure for each packet that traverses the Hyper-V extensible switch data path contains out-of-band (OOB) data. Diese Daten geben den Quellport an, von dem das Paket stammt, sowie einen oder mehrere Zielports für die Paketübermittlung. Diese OOB-Daten werden als erweiterbarer Switchweiterleitungskontext bezeichnet.

The following data types have been declared to access the extensible switch forwarding context within a packet's NET_BUFFER_LIST structure:

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
Dies ist eine 64-Bit-Union, die die Weiterleitungsmerkmale eines Pakets enthält. Diese Daten umfassen die Bezeichner für den Quellport und die Netzwerkadapterverbindung, von der das Paket stammt. Diese Daten enthalten auch die Anzahl nicht verwendeter Elemente, die im Zielportarray verfügbar sind.

The extensible switch extension can access this data by using the NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL macro.

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
Diese Struktur definiert das Zielportarray für das Paket. Each element in this array is formatted as an NDIS_SWITCH_PORT_DESTINATION structure.

The NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure contains members that specify the current number of the total number of elements as well as the number of used elements in the array.

The extensible switch extension can obtain this array by calling the GetNetBufferListDestinations function. If the driver adds or modifies elements in the array for a packet with multiple destination ports, it must call the UpdateNetBufferListDestinations function. Diese Funktion führt einen Commit für diese Änderungen an dem Zielportarray im Weiterleitungskontext des Pakets durch.

Note To commit changes to a packet with only one destination port, it is more efficient for the driver to call the AddNetBufferListDestination function.

NDIS_SWITCH_PORT_DESTINATION
Diese Struktur definiert einen Zielport für das Paket. For packets with a single destination port, there is only one NDIS_SWITCH_PORT_DESTINATION element in the destination port array. Für Pakete mit mehreren Zielports gibt es mindestens eins dieser Elemente im Array.

After the extensible switch extension has called GetNetBufferListDestinations to obtain the packet's destination port array, it can access individual elements in the array by using the NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX macro.