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構造体のバージョンを指定するには、HeaderRevision メンバーを次の値に設定する必要があります。

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

NDIS 6.30 以降の元のバージョン。

[サイズ] メンバーを [NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1] に設定します。

ElementSize

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY構造体に続く各NDIS_SWITCH_PORT_DESTINATION要素のサイズをバイト単位で指定する ULONG 値。

NumElements

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY構造体内のNDIS_SWITCH_PORT_DESTINATION要素の合計数を指定する ULONG 値。

NumElements メンバーの値は、現在使用されているNDIS_SWITCH_PORT_DESTINATION要素の数 (NumDestinations メンバーで指定) と、新しい宛先ポートで使用できる要素の数を指定します。 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY構造体の未使用のNDIS_SWITCH_PORT_DESTINATION要素の数は、(NumElementsNumDestinations - ) によって計算されます。

NumDestinations

ポートの宛先を指定する NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 構造体内の NDIS_SWITCH_PORT_DESTINATION 要素の数を指定する ULONG 値。

メモNumElements が 0 に設定されている場合、このメンバーは無視されます。
 

FirstElement

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY構造体とそのすべての要素を含むバッファー内の最初のNDIS_SWITCH_PORT_DESTINATION要素へのポインター。

注釈

拡張可能スイッチ拡張機能は、パケットの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 以降でサポートされています。
Header 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