次の方法で共有


NdisAllocateNetBufferList 関数 (ndis/nblapi.h)

NdisAllocateNetBufferList 関数を呼び出して、NET_BUFFER_LIST構造体プールからNET_BUFFER_LIST構造体を割り当てて初期化します。

構文

NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateNetBufferList(
  [in] NDIS_HANDLE PoolHandle,
  [in] USHORT      ContextSize,
  [in] USHORT      ContextBackFill
);

パラメーター

[in] PoolHandle

の呼び出しから以前に返されたNET_BUFFER_LIST構造体プール ハンドル NdisAllocateNetBufferListPool

[in] ContextSize

呼び出し元のために予約するNET_BUFFER_LIST_CONTEXT構造体内の使用されるデータ領域の量。 ContextSize は、MEMORY_ALLOCATION_ALIGNMENTによって定義された値の倍数である必要があります。

[in] ContextBackFill

呼び出し元が必要とする 未使用のデータ領域 (バックフィル領域) の量。 NDIS は、この値を ContextSize に追加し、追加の領域を割り当てます。 ContextBackFill は、MEMORY_ALLOCATION_ALIGNMENTによって定義された値の倍数である必要があります。

戻り値

NdisAllocateNetBufferList は、割り当てられたNET_BUFFER_LIST構造体へのポインターを返します。 割り当てが失敗した場合、このポインターは NULL です

注釈

NdisAllocateNetBufferList または を呼び出すことができます。プールからNET_BUFFER_LIST構造体を割り当てる NdisAllocateNetBufferAndNetBufferList 関数。

NET_BUFFERNET_BUFFER_LIST 構造体は、NDIS バッファー プールから割り当てる必要があります。 ドライバーは、プライベート メモリ プールまたはスタックからNET_BUFFER_LISTまたはNET_BUFFER構造体を割り当てて初期化することはできません。
 
NdisAllocateNetBufferList を呼び出し、 を呼び出してNET_BUFFER_LIST構造体プールが割り当てられた場合NET_BUFFER_LIST_POOL_PARAMETERS構造体の fAllocateNetBuffer メンバーが TRUE に設定されている NdisAllocateNetBufferListPool 関数は、NET_BUFFER_LIST、NET_BUFFER、MDL、およびデータを割り当てます。

NdisFreeNetBufferList 関数を呼び出して、NET_BUFFER_LIST構造体を解放します。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis/nblapi.h (ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_NetBuffer_Function(ndis)、NdisAllocateNetBufferList2(ndis)、NdisAllocateNetBufferList2_InitFail(ndis)

こちらもご覧ください

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferListPool

NdisFreeNetBufferList