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 構造体として書式設定されます。

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

NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1

NDIS 6.0 の元のバージョン。

[サイズ] メンバーを [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

このプール内の NET_BUFFER_LIST 構造体に NDIS が提供する必要がある事前割り当て済みの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 で、fAllocateNetBufferTRUE の場合、NDIS はNET_BUFFER構造体を割り当てますが、データ バッファーは割り当てません。

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

要件

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

こちらもご覧ください

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_DATA

NdisAllocateNetBufferListPool