共用方式為


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 結構。

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

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 成員。 轉送延伸模組也可以變更 preserveVLAN PreservePriority 成員。
       
    如果擴充功能新增或修改埠目的地,則必須呼叫 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