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構造体のバージョンを指定するには、ドライバーは Header の Revision メンバーを次の値に設定する必要があります。
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 で、fAllocateNetBuffer が TRUE の場合、NDIS はNET_BUFFER構造体を割り当てますが、データ バッファーは割り当てません。
NdisAllocateNetBufferListPool 関数の Parameters パラメーターには、NET_BUFFER_LIST_POOL_PARAMETERS構造体へのポインターが含まれています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
Header | ndis/nblapi.h (ndis.h を含む) |