共用方式為


NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構 (ndis.h)

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構會指定封包的 Hyper-V 可延伸交換器目的地埠陣列。 數位中的每個元素都會格式化為 NDIS_SWITCH_PORT_DESTINATION 結構。

此資訊包含在封包 NET_BUFFER_LIST結構的頻 外 (OOB) 數據中。

語法

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;

成員

Header

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的型別、修訂和大小。 此成員的格式為 NDIS_OBJECT_HEADER 結構。

HeaderType 成員必須設定為 NDIS_OBJECT_TYPE_DEFAULT。 若要指定NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY結構的版本,標頭Revision 成員必須設定為下列值:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

NDIS 6.30 和更新版本的原始版本。

Size 成員設定為 NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1。

ElementSize

ULONG 值,指定NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構後面每個NDIS_SWITCH_PORT_DESTINATION元素的大小,以位元組為單位。

NumElements

ULONG 值,指定NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構中的NDIS_SWITCH_PORT_DESTINATION元素總數。

NumElements 成員的值會指定目前使用的NDIS_SWITCH_PORT_DESTINATION元素數目, (由 NumDestinations 成員所指定,) 加上新目的地埠可用的元素數目。 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構中未使用的NDIS_SWITCH_PORT_DESTINATION元素數目是由 (NumElements - NumDestinations) 計算。

NumDestinations

ULONG 值,指定指定埠目的地之NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY結構中的NDIS_SWITCH_PORT_DESTINATION元素數目。

注意 如果 NumElements 設定為零,則會忽略這個成員。
 

FirstElement

緩衝區中第一個 NDIS_SWITCH_PORT_DESTINATION 專案的指標,其中包含 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構及其所有元素。

備註

可延伸交換器擴充功能可以使用封包 NET_BUFFER_LIST 結構中的目的地埠來執行下列動作:

  • 在可延伸交換器上查詢目前目的地埠,封包將會轉送至該埠。

    可延伸交換器擴充功能會呼叫 GetNetBufferListDestinations 函式,以取得封包的埠目的地數位。 GetNetBufferListDestinations 會傳回 Destinations 參數中NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY結構的指標。

    如需詳細資訊,請參閱 查詢封包的可延伸交換器目的地埠數據

  • 新增或修改封包的目的地埠。

    在查詢封包的目前目的地埠之後,可延伸交換器擴充功能可以執行下列動作:

    • 轉送延伸模組可以將新的目的地埠新增至 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構。
    • 篩選或轉送延伸模組可以修改目的地埠 NDIS_SWITCH_PORT_DESTINATION 結構中的數據。
      注意 篩選延伸模組只能變更這個結構的 IsExcluded 成員。 轉送延伸模組也可以變更 PreserveVLANPreservePriority 成員。
       
    如果擴充功能新增或修改埠目的地,則必須呼叫 UpdateNetBufferListDestinations ,將目的地埠的變更認可至 NET_BUFFER_LIST 結構中的封包 OOB 數據。

    如需詳細資訊,請參閱 管理 Hyper-V 可延伸交換器目的地埠數據

可延伸的交換器延伸模組可以使用 NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX 宏來存取 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 陣列中的 NDIS_SWITCH_PORT_DESTINATION 專案。

規格需求

需求
最低支援的用戶端 NDIS 6.30 和更新版本支援。
標頭 ndis.h (包括 Ndis.h)

另請參閱

將可延伸交換器目的地埠數據新增至封包

排除封包傳遞至可延伸交換器目的地埠

轉送延伸模組

GetNetBufferListDestinations

混合式轉送

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Hyper-V 可延伸交換器概觀

UpdateNetBufferListDestinations