NDIS_SWITCH_SET_NET_BUFFER_LIST_SWITCH_CONTEXT コールバック関数 (ndis.h)
Hyper-V 拡張可能スイッチ拡張機能は 、SetNetBufferListSwitchContext 関数を呼び出して、拡張機能によって割り当てられたコンテキスト バッファーを NET_BUFFER_LISTにアタッチします。 その後、他の拡張機能が独自のコンテキストを設定しているかどうかに関係なく、イングレスでコンテキストが設定され、NBL がエグレスで再び表示されるかどうかなど、そのNET_BUFFER_LISTの有効期間にわたってコンテキストにアクセスできます。 この種類のアクセスは、既存の NDIS NET_BUFFER_LIST コンテキスト API (NdisAllocateNetBufferListContext/ NET_BUFFER_LIST_CONTEXT_DATA_START) を使用することはできません。別の拡張機能は、元の NDIS コンテキストへのポインターが失われるNET_BUFFER_LISTの所有権を取得するときに NDIS コンテキストを割り当てることができます。
構文
NDIS_SWITCH_SET_NET_BUFFER_LIST_SWITCH_CONTEXT NdisSwitchSetNetBufferListSwitchContext;
NDIS_STATUS NdisSwitchSetNetBufferListSwitchContext(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[in] PNDIS_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE ContextType,
[in] PVOID Context
)
{...}
パラメーター
[in] NdisSwitchContext
Hyper-V 拡張可能スイッチ拡張機能がアタッチされている拡張可能スイッチ モジュールのハンドルを含むNDIS_SWITCH_CONTEXT値。 拡張機能が NdisFGetOptionalSwitchHandlers を呼び出すと、このハンドルは NdisSwitchContext パラメーターを介して返されます。
[in, out] NetBufferList
コンテキストの関連付けを受け取る 1 つのパケットの NET_BUFFER_LIST 構造体へのポインター。
[in] ContextType
コンテキストを取得するときにキーとして使用される NDIS_DECLARE_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE を使用して宣言されたコンテキスト型。
[in] Context
指定した ContextType を使用して取得できるコンテキストへのポインター。
戻り値
呼び出しが成功した場合、関数は NDIS_STATUS_SUCCESSを返します。 それ以外の場合は、Ndis.h で定義されているNDIS_STATUS_Xxx エラー コードを返します。
注釈
SetNetBufferListSwitchContext API を使用すると、拡張機能は、イングレス上のNET_BUFFER_LISTにコンテキストをアタッチし、エグレスでそれを取得できます。 それでも、拡張機能は、エグレスに存在しないイングレス コンテキストに対する回復性を持つ必要があります。 スイッチ コンテキストは、NET_BUFFER_LISTが複製されるときに保持されないため、イングレスとエグレスの間でNET_BUFFER_LISTが複製されるシナリオでは、NET_BUFFER_LISTには元のスイッチ コンテキストがありません。
拡張機能は、コンテキストの有効期間を管理する必要があります。 1 つの方法は、NDIS NET_BUFFER_LIST コンテキスト ( NdisAllocateNetBufferListContext を使用するか、拡張機能がNET_BUFFER_LIST プールを所有している場合は事前構成済み) を割り当て、 SetNetBufferListSwitchContext を 使用してコンテキスト型識別子を NDIS NET_BUFFER_LIST コンテキストに関連付けます。 NBL が完了すると、拡張機能は NDIS NET_BUFFER_LIST コンテキストを解放できます ( NdisFreeNetBufferListContext を使用するか、拡張機能によって生成された場合はNET_BUFFER_LIST自体を解放します)。
拡張可能スイッチ転送コンテキストの詳細については、「 Hyper-V 拡張可能スイッチ転送コンテキスト」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.30 以降でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |
こちらもご覧ください
AllocateNetBufferListForwardingContext
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示