次の方法で共有


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

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

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

Size メンバーを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 要素の数は、(NumElements - NumDestinations) によって計算されます。

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 以降でサポートされています。
ヘッダー 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