次の方法で共有


NET_BUFFER_LIST_POOL_PARAMETERS構造体 (ndis/nblapi.h)

NET_BUFFER_LIST_POOL_PARAMETERS 構造体は、NET_BUFFER_LIST 構造体のプールのパラメーターを定義します。

構文

typedef struct _NET_BUFFER_LIST_POOL_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  UCHAR              ProtocolId;
  BOOLEAN            fAllocateNetBuffer;
  USHORT             ContextSize;
  ULONG              PoolTag;
  ULONG              DataSize;
  ULONG              Flags;
} NET_BUFFER_LIST_POOL_PARAMETERS, *PNET_BUFFER_LIST_POOL_PARAMETERS;

メンバーズ

Header

NET_BUFFER_LIST_POOL_PARAMETERS 構造体の型、リビジョン、およびサイズ。 このメンバーは、NDIS_OBJECT_HEADER 構造体として書式設定されます。

ミニポート ドライバーは、ヘッダー メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定する必要があります。 NET_BUFFER_LIST_POOL_PARAMETERS 構造体のバージョンを指定するには、ドライバーは、ヘッダーリビジョン メンバーを次の値に設定する必要があります。

NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1

NDIS 6.0 の元のバージョン。

Size メンバーをNDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1に設定します。

ProtocolId

呼び出し元の型。 ミニポート、フィルター、および中間ドライバーは、このフィールドを 0 (NDIS_PROTOCOL_ID_DEFAULT) に設定します。 プロトコル ドライバーでは、次のいずれかの値を使用します。

NDIS_PROTOCOL_ID_DEFAULT

既定のプロトコル ドライバー識別子を指定します。

NDIS_PROTOCOL_ID_TCP_IP

TCP/IP プロトコルを指定します。

NDIS_PROTOCOL_ID_IPX

IPX プロトコルを指定します。

NDIS_PROTOCOL_ID_NBF

NetBEUI プロトコルを指定します。

fAllocateNetBuffer

このメンバーが TRUE に設定されている場合、NDIS は NET_BUFFER_LIST 構造体のプールを割り当てます。 割り当てられた各 NET_BUFFER_LIST 構造体は、1 つの NET_BUFFER 構造体で初期化されます。

このメンバーが FALSE に設定されている場合、NDIS は NET_BUFFER_LIST 構造体のプールを割り当てます。 割り当てられた各 NET_BUFFER_LIST 構造体は、NET_BUFFER 構造体を格納するように初期化されません。

詳細については、「解説」セクションを参照してください。

ContextSize

NDIS がこのプール内のNET_BUFFER_LIST構造体に提供する必要がある事前に割り当てられた NET_BUFFER_LIST_CONTEXT 構造体データのサイズ (バイト単位)。 ContextSize は、MEMORY_ALLOCATION_ALIGNMENTによって定義される値の倍数である必要があります。

PoolTag

呼び出し元がこのプールからNET_BUFFER_LIST構造体を割り当てるときに使用するカーネル プール タグ。 タグは、一重引用符で区切られた文字列で、通常は逆順に指定された最大 4 文字です。 カーネル プール タグは、NDIS がこのプールから割り当てられている NET_BUFFER_LIST 構造体の所有者を識別するのに役立ちます。

DataSize

この NET_BUFFER_LIST プールに関連付けられているデータ バッファーの既定のデータ サイズ (バイト単位)。 NDIS は、関連付けられている NET_BUFFER 構造体に割り当てるデータ バッファーのサイズを設定するには、この値を使用します。

詳細については、「解説」セクションを参照してください。

Flags

次のフラグが定義されています。

NET_BUFFER_LIST_POOL_FLAG_VERIFY 0x00000001

このフラグが設定されている場合、NDIS はすぐにこのプールからのNET_BUFFER_LISTsを再利用しません。 代わりに、割り当ては解放されるとアクセスなしとしてマークされるため、ドライバーは使用後のバグを検出できます。

備考

fAllocateNetBuffer が FALSE に設定されている場合、NDIS は NET_BUFFER 構造体を割り当てず、DataSize を 0 に設定する必要があります。

DataSize 0 でない場合は、fAllocateNetBuffer TRUE に設定する必要があります。 これにより、NDIS は、指定したサイズのデータ バッファーを持つ NET_BUFFER 構造体を割り当てます。

DataSize が 0 で、fAllocateNetBuffer が TRUE 場合、NDIS は NET_BUFFER 構造体を割り当てますが、データ バッファーは割り当てません。

ParametersNdisAllocateNetBufferListPool 関数のパラメーターには、NET_BUFFER_LIST_POOL_PARAMETERS 構造体へのポインターが含まれています。

必要条件

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

関連項目

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_DATA

NdisAllocateNetBufferListPool