パケットの拡張可能スイッチの宛先ポート データのクエリ

各 Hyper-V 拡張可能スイッチの宛先ポートは、NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 構造内の NDIS_SWITCH_PORT_DESTINATION 要素によって指定されます。 この配列は、パケットの NET_BUFFER_LIST 構造の帯域外 (OOB) 転送コンテキストに含まれます。 このコンテキストの詳細については、「Hyper-V 拡張可能スイッチ転送コンテキスト」を参照してください。

拡張可能スイッチ拡張機能は、GetNetBufferListDestinations 関数を呼び出して、パケットの NET_BUFFER_LIST 構造内のNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 構造へのポインターを取得します。 この構造内の個々の NDIS_SWITCH_PORT_DESTINATION 要素には、NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX マクロを使用してアクセスできます。

パフォーマンスを向上させるために、転送拡張機能は GetNetBufferListDestinations の代わりに GrowNetBufferListDestinations 関数を呼び出し、NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 構造へのポインターを取得できます。 この拡張機能は、宛先ポートのパケットの OOB データに追加の配列要素が必要であると判断した場合にこれを行います。 詳細については、「パケットへの拡張可能スイッチ宛先ポート データの追加」を参照してください。

拡張可能スイッチ エグレス データ パスから取得したパケットにのみ、宛先ポート情報が含められます。 詳細については、「Hyper-V 拡張可能スイッチのデータ パス」を参照してください。