共用方式為


Hyper-V 可擴展的交換轉送上下文數據類型

The NET_BUFFER_LIST structure for each packet that traverses the Hyper-V extensible switch data path contains out-of-band (OOB) data. 此數據會指定來自封包的來源埠,以及封包傳遞的一或多個目的地埠。 此 OOB 資料被稱為 可擴展交換器轉發上下文

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
這是包含封包轉送特性的64位聯集。 此數據報含封包來源埠和網路適配器連線的標識碼。 此資料也包含目的地埠陣列中可用的未使用項目數目。

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

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
此結構會定義封包的目的地埠陣列。 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. 此函式會將這些變更提交到封包轉送上下文中的目的地埠陣列。

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
此結構會定義封包的目的地埠。 For packets with a single destination port, there is only one NDIS_SWITCH_PORT_DESTINATION element in the destination port 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.