NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO コールバック関数 (ndis.h)
Hyper-V 拡張可能スイッチ拡張機能は、CopyNetBufferListInfo 関数を呼び出して、帯域外 (OOB) 転送コンテキストをソース パケットの NET_BUFFER_LIST 構造から宛先パケットの NET_BUFFER_LIST 構造にコピーします。 このコンテキストには、拡張可能スイッチのソース ポートとネットワーク アダプターの情報が含まれます。 拡張可能スイッチの宛先ポート情報もコピーできます。
構文
NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;
NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST DestNetBufferList,
[in] PNET_BUFFER_LIST SrcNetBufferList,
[in] UINT32 Flags
)
{...}
パラメーター
[in] NdisSwitchContext
拡張機能がアタッチされている拡張可能スイッチ モジュールのハンドルを含むNDIS_SWITCH_CONTEXT値。 拡張機能が NdisFGetOptionalSwitchHandlers 呼び出すと、このハンドルは、NdisSwitchContext パラメーターを介して返されます。
[in, out] DestNetBufferList
拡張可能スイッチ転送コンテキストがコピーされる宛先パケットの NET_BUFFER_LIST 構造体へのポインター。
[in] SrcNetBufferList
拡張可能スイッチ転送コンテキストのコピー元のソース パケットの NET_BUFFER_LIST 構造体へのポインター。
[in] Flags
UINT32 値。 NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS フラグを指定すると、関数は拡張可能スイッチの宛先ポートを送信元パケットから宛先パケットにコピーします。
送信元パケットの NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 共用体内に含まれるデータは、常に宛先パケットの拡張可能スイッチ転送コンテキストにコピーされます。 このデータには、パケットの送信元のネットワーク アダプター接続のソース ポート識別子とインデックスが含まれます。 宛先パケットにコピーされる拡張可能スイッチ宛先ポートの数に応じて、NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 共用体の NumAvailableDestinations メンバーが宛先パケットで更新されます。
転送コンテキストの詳細については、「Hyper-V 拡張可能スイッチ転送コンテキストの」を参照してください。
戻り値
呼び出しが成功した場合、関数はNDIS_STATUS_SUCCESSを返します。 それ以外の場合は、Ndis.h で定義されているNDIS_STATUS_Xxx エラー コードが返されます。
備考
拡張可能スイッチ拡張機能は、CopyNetBufferListInfo 関数を呼び出して、OOB データをソース パケットから宛先パケットにコピーします。 このデータには、次のものが含まれます。
- NetBufferListInfo のデータ ソース パケットの NET_BUFFER_LIST 構造体の配列です。
- ソース パケットの拡張可能スイッチ転送コンテキストからの NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO データ。
-
送信元パケットの拡張可能スイッチ転送コンテキストからの拡張可能スイッチ宛先ポートのデータ。
メモ このデータは、NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS フラグが指定されている場合にのみコピーされます。
-
拡張機能は、最初に、送信元パケットの NET_BUFFER_LIST 構造体から派生した宛先パケットの NET_BUFFER_LIST 構造体を初期化する必要があります。
たとえば、この拡張機能 NdisAllocateCloneNetBufferList を呼び出して、ソース パケットの完全なコピーを作成できます。 また、この拡張機能 NdisAllocateFragmentNetBufferList を呼び出して、ソース パケットのフラグメントのみのコピーを作成することもできます。 詳細については、「派生NET_BUFFER_LIST構造体 を参照してください。
- 拡張機能は、AllocateNetBufferListForwardingContext 関数を呼び出して、宛先パケットの拡張可能スイッチ転送コンテキストを割り当てる必要があります。 このデータは、パケットの送信元ポートや宛先ポートなどの OOB 拡張可能スイッチ転送情報を格納するために使用されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.30 以降でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |
関連項目
AllocateNetBufferListForwardingContext の
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
NdisAllocateCloneNetBufferList の
NdisAllocateFragmentNetBufferList の
NdisFGetOptionalSwitchHandlers の