英語で読む

次の方法で共有


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 ドライバーは、〘NdisAllocateNetBufferListContext 関数を して、NET_BUFFER_LIST_CONTEXT構造体に連続するバッファー領域を割り当てます。 必要に応じて、NDIS は、要求を受け入れます追加の領域を持つ新しいNET_BUFFER_LIST_CONTEXT構造体を割り当てます。 NDIS ドライバーは、〘NdisFreeNetBufferListContext 関数を してバッファー領域を解放します。

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

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

必要条件

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

関連項目

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool NET_BUFFER_LIST_CONTEXT_DATA_SIZE NET_BUFFER_LIST_CONTEXT_DATA_START

NdisFreeNetBufferListContext