NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATIONコールバック関数 (ndis.h)
AddNetBufferListDestination 関数は、NET_BUFFER_LIST 構造体で指定されたパケットの単一の宛先ポートを追加します。
構文
NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION NdisSwitchAddNetBufferListDestination;
NDIS_STATUS NdisSwitchAddNetBufferListDestination(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[in] PNDIS_SWITCH_PORT_DESTINATION Destination
)
{...}
パラメーター
[in] NdisSwitchContext
Hyper-V 拡張可能スイッチ拡張機能がアタッチされている拡張可能スイッチ モジュールのハンドルを含むNDIS_SWITCH_CONTEXT値。 拡張機能が NdisFGetOptionalSwitchHandlers 呼び出すと、このハンドルは、NdisSwitchContext パラメーターを介して返されます。
[in, out] NetBufferList
パケットの NET_BUFFER_LIST 構造体へのポインター。
[in] Destination
NDIS_SWITCH_PORT_DESTINATION 構造体へのポインター。 この構造体は、パケットの転送先となる宛先拡張可能スイッチ ポートを指定します。
戻り値
呼び出しが成功した場合、関数はNDIS_STATUS_SUCCESSを返します。 それ以外の場合は、Ndis.h で定義されているNDIS_STATUS_Xxx エラー コードが返されます。
備考
転送拡張可能スイッチ拡張機能は、AddNetBufferListDestination 呼び出して、パケットの 1 つの拡張可能スイッチ宛先ポートを定義します。 拡張機能は、NDIS_SWITCH_PORT_DESTINATION 構造体を初期化することによって、このポートを指定します。 拡張機能は、Destination パラメーターをこの構造体へのポインターに設定します。 拡張可能スイッチの宛先ポートを指定する方法の詳細については、「Hyper-V 拡張可能スイッチの宛先ポート データの管理 を参照してください。
- AddNetBufferListDestination 呼び出すことができるのは、転送拡張機能だけです。パケットの宛先ポートを追加できます。 この種類の拡張機能の詳細については、「転送拡張機能の」を参照してください。
-
転送拡張機能が 1 つの宛先ポートを持つパケットを送信元とする場合、拡張機能は最初に AllocateNetBufferListForwardingContext 関数を呼び出す必要があります。 この関数は、パケットの拡張可能スイッチ転送コンテキストを割り当てます。 このデータには、パケットの帯域外 (OOB) 情報内の拡張可能スイッチの送信元ポートと宛先ポートが含まれます。
このコンテキストの詳細については、「Hyper-V 拡張可能スイッチ転送コンテキストの」を参照してください。
-
拡張機能は、NDIS_SWITCH_PORT_DESTINATION 構造体の宛先ポート情報を変更した後、AddNetBufferListDestination を呼び出して、パケットの NET_BUFFER_LIST 構造体に変更をコミットします。
注意 パフォーマンス上の理由から、拡張機能は、UpdateNetBufferListDestinations 関数を呼び出してパケットの変更をコミットしないでください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.30 以降でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |
関連項目
GetNetBufferListDestinations の
NdisFGetOptionalSwitchHandlers の
UpdateNetBufferListDestinations の