次の方法で共有


NET_BUFFER_LIST_CONTEXT構造体 (ndis/nbl.h)

NET_BUFFER_LIST_CONTEXT構造体には、 NET_BUFFER_LIST 構造体のコンテキスト情報が格納されます。

構文

typedef struct _NET_BUFFER_LIST_CONTEXT {
  NET_BUFFER_LIST_CONTEXT *Next;
  USHORT                  Size;
  USHORT                  Offset;
  UCHAR                   ContextData[];
} NET_BUFFER_LIST_CONTEXT, *PNET_BUFFER_LIST_CONTEXT;

メンバー

Next

NET_BUFFER_LIST_CONTEXT構造体のリンクされたリスト内の次のNET_BUFFER_LIST_CONTEXT構造体へのポインター。

Size

NET_BUFFER_LIST_CONTEXT構造体内のコンテキスト空間全体のサイズ (バイト単位)。

Offset

コンテキスト データ バッファーの先頭から、NET_BUFFER_LIST_CONTEXT構造体内のコンテキスト データの先頭までのオフセット (バイト単位)。 Offset メンバーは、NET_BUFFER_LIST_CONTEXT構造体の未使用のコンテキスト空間のサイズ (バイト単位) も指定します。

ContextData

コンテキスト データ バッファー。 コンテキスト データには、ドライバーに必要な情報を含めることができます。

注釈

すべての NET_BUFFER_LIST 構造体には、事前に割り当てられたNET_BUFFER_LIST_CONTEXT構造体を含めることができます。 NET_BUFFER_LIST構造体がドライバー スタックを通過すると、各ドライバーの追加のデータ領域に対応するために、NET_BUFFER_LIST_CONTEXT構造体のリンクされたリストを拡張できます。

ドライバーは、次の NDIS マクロと関数を使用して、NET_BUFFER_LIST_CONTEXT構造体のメンバーにアクセスして操作する必要があります。

NET_BUFFER_LIST_CONTEXT構造体の ContextData メンバーは、NET_BUFFER_LIST_CONTEXT構造体のデータ部分を指定します。 システム パフォーマンスを向上させるには、ドライバーがNET_BUFFER_LIST構造体プールを割り当てるときに、必要なコンテキスト データ領域を事前に割り当てる必要があります。 このデータ空間を事前に割り当てるには、ドライバーは を呼び出します。 NdisAllocateNetBufferListPool 関数を使用して、 ContextSize パラメーターに必要なデータ領域の量を指定します。 このデータ領域の事前割り当てにより、NDIS が受信パスと送信パスにメモリを割り当てることができなくなります。
メモ NDIS は、必要なコンテキスト データ空間を見積もり、必要に応じて、ドライバー スタック全体の要件を満たすように割り当てられたデータ領域を調整します。
 
Offset メンバーは、NET_BUFFER_LIST_CONTEXT構造体内の未使用のコンテキスト空間の量を指定します。 Offset メンバーは、ContextData メンバーの先頭から使用されるコンテキスト データ空間の先頭までのオフセットも示します。

NDIS ドライバーは、 を呼び出します。NET_BUFFER_LIST_CONTEXT構造体に連続するバッファー領域を割り当てる NdisAllocateNetBufferListContext 関数。 必要に応じて、NDIS は新しいNET_BUFFER_LIST_CONTEXT構造体を割り当て、要求を受け入れられます。 NDIS ドライバーは、 を呼び出します。バッファー領域を解放する NdisFreeNetBufferListContext 関数。

画面右側の マクロNET_BUFFER_LIST_CONTEXT_DATA_SIZE 使用されるコンテキスト空間のサイズを取得します。 画面右側の NET_BUFFER_LIST_CONTEXT_DATA_START マクロを使用して、使用されるコンテキスト空間の開始アドレスを取得します。

ネット バッファーの使用方法の詳細については、「 NET_BUFFER アーキテクチャ」を参照してください。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
Header ndis/nbl.h (ndis.h を含む)

こちらもご覧ください

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT_DATA_SIZE NET_BUFFER_LIST_CONTEXT_DATA_START NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool

NdisFreeNetBufferListContext