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 以降でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |
こちらもご覧ください