NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS コールバック関数 (ndis.h)
GetNetBufferListDestinations 関数は、NET_BUFFER_LIST構造体で指定されたパケットの Hyper-V 拡張可能スイッチの宛先ポートを返します。
構文
NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS NdisSwitchGetNetBufferListDestinations;
void NdisSwitchGetNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[out] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY *Destinations
)
{...}
パラメーター
[in] NdisSwitchContext
Hyper-V 拡張可能スイッチ拡張機能がアタッチされている拡張可能スイッチ モジュールのハンドルを含むNDIS_SWITCH_CONTEXT値。 拡張機能が NdisFGetOptionalSwitchHandlers を呼び出すと、このハンドルは NdisSwitchContext パラメーターを介して返されます。
[in, out] NetBufferList
NET_BUFFER_LIST構造体のリンクされたリストへのポインター。
[out] Destinations
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY構造体へのポインター。 この構造体は、パケットの拡張可能スイッチの宛先ポートを指定します。
戻り値
呼び出しが成功した場合、関数はNDIS_STATUS_SUCCESSを返します。 それ以外の場合は、Ndis.h で定義されているNDIS_STATUS_Xxx エラー コードが返されます。
注釈
拡張可能スイッチ拡張機能は 、GetNetBufferListDestinations 関数を呼び出して、パケットの拡張可能スイッチ宛先ポートの配列を取得します。 関数が正常に返された場合、配列は Destinations パラメーターを介して取得されます。このパラメーターには、 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 構造体へのポインターが含まれます。 この配列内の各要素は、パケットの宛先ポートを指定する NDIS_SWITCH_PORT_DESTINATION 構造体として書式設定されます。
拡張機能がパケットを割り当てる場合、拡張機能は GetNetBufferListDestinations を呼び出す前に、まず AllocateNetBufferListForwardingContext 関数を呼び出す必要があります。 AllocateNetBufferListForwardingContext 関数は、パケットの拡張可能スイッチ転送コンテキストを割り当てます。 このコンテキストには、 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 構造を含む帯域外 (OOB) 拡張可能スイッチ データが含まれています。
拡張可能スイッチ転送コンテキストの詳細については、「 Hyper-V 拡張可能スイッチ転送コンテキスト」を参照してください。
拡張機能が配列を取得した後、次の操作を実行できます。
-
配列内の追加 のNDIS_SWITCH_PORT_DESTINATION 要素にスペースを割り当てます。
詳細については、「 拡張可能スイッチの宛先ポート データをパケットに追加する」を参照してください。
-
配列の NDIS_SWITCH_PORT_DESTINATION 要素の宛先ポート情報を変更します。 たとえば、拡張機能では、パケットを転送するポートを指定したり、指定したポートへのパケットの転送から除外することができます。
詳細については、「 パケットの拡張可能スイッチソース ポート データの変更」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.30 以降でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |
こちらもご覧ください
AllocateNetBufferListForwardingContext